Microsoft has released a firmware update to the Surface Pro 4 and Surface Book that, at long last, fixes significant power management and sleep bugs that saw Microsoft's latest systems draining their batteries and getting extremely hot when they should have been in ultra low power mode. Power management and driver problems are an unfortunately common feature of Windows systems, but these newest Surface devices have been a little more troublesome than most. With Microsoft responsible for both the hardware and the software, this has been a disappointment to many.

The Surface Book was one of my favorite machines from 2015, with its sleek, elegant package, pleasing hinge, and solid specs. The review unit had a very raw firmware and driver loadout; in fact, the Windows Hello facial recognition wasn't working in the review system. I also had some issues with detaching the screen. I assumed that all these issues would be ironed out by the time the hardware hit the market, and certainly shipping machines did have proper support for Hello, but niggling issues persisted.

I wasn't alone with this; the Surface Book and Surface Pro 4 have both suffered a range of problems with, among other things, Wi-Fi, sleep, and the display drivers. The sleep problem—which, oddly, didn't seem to affect me with the pre-release firmware—was probably the most serious and persistent issue. The systems are supposed to support Connected Standby, aka S0ix power saving modes, which lets the system sleep while still being able to do things like check for e-mails, fetch new tweets, or receive Skype calls. This mode should be a very low power mode, but Surface Pro 4 and Book owners were finding that their systems would drain their batteries within a few hours. When doing so in laptop bags, they'd get very hot, too.

Microsoft's power management diagnostic tools pointed the finger primarily at Intel's Skylake GPU driver, but while successive GPU driver updates fixed other issues, the sleeping problem remained.

These problems are nothing if not inconsistent; while I've been afflicted by the sleep issue, I haven't experienced any Wi-Fi issues myself, and the big display driver problems seemed to go away in an update last year. But I know other people have had different experiences. It's always a little difficult, without inside information, to know just how widespread these problems are; even an issue that affects a few percent of people can result in a large volume of support forum complaints. Sometimes these represent the tip of the iceberg; other times they're the whole story.

Today's firmware update should finally put this power management problem to bed, letting the Surface Pro 4 and Surface Book sleep soundly. That Microsoft has fixed this problem at last is welcome. What's less welcome is the way the company has handled the problems in the first place. With the Surface line, Microsoft has in some ways set a standard for the rest of the PC industry. The emphasis on build quality, the freedom from crapware, the integration of touch and non-touch inputs have all been strengths of the Surface systems, and I'd argue that the work Microsoft has done has encouraged other PC vendors to raise their game. Systems such as the HP Spectre x2 are clearly influenced by Microsoft's work on Surface, and I can't help but feel that even systems like Dell's XPS 13 have been designed with at least one eye on competing with Microsoft's hardware quality.

This ain't no Mac

I'd hoped that this standard-setting approach would extend to firmware, drivers, and support. One of the traditional issues with the PC is that the hardware and the software are made by different people, with users trapped in the middle. If a system crashes or has other problems, it's not always immediately clear if this is a hardware problem or a Windows problem. Having Microsoft build the machine and make the operating system should have put an end to this uncertainty. With one company responsible for the entire stack, it'd be reasonable to expect that a Surface system works perfectly out of the box.

That plainly hasn't happened with these systems. Even though these are very expensive, premium systems, they've been somewhere between a little bit unreliable and a lot unreliable, and that's just not good enough, as Paul Thurrott strongly argued before Christmas.

Of course, while Microsoft has its name on the box and on the operating system, important parts of the systems are third-party. Intel supplies the essential display driver and some power management components, and on some Surface Book units, Nvidia provides the display driver. These third-party components have all had partial responsibility for the system problems, and this highlights one of the essential conundrums of the PC experience.

On the one hand, the PC platform is tremendously flexible, with a wide range of processors, GPUs, motherboards, and other peripherals. Microsoft simply cannot provide drivers for all of these things, however, as there are far too many of them. This means that PC manufacturers, including Microsoft, are utterly beholden to this diverse array of suppliers to get things right. Sometimes, that takes a bit of time. I've seen some amount of shakiness from both Intel and Nvidia drivers on other systems I've reviewed recently; this aspect of the PC platform is in no way specific to the Surface hardware. The hardware simply came to market before the software stack was completely ready.

The major competitor in this space, Apple, offers a different approach. There's much less hardware diversity, and as such, Apple is responsible for a much greater proportion of the code. The OpenGL stack in OS X, for example, is Apple-developed. In Windows, each OpenGL stack comes from the GPU vendor. On the one hand, this should mean that there are fewer weird bugs and interactions on Apple systems; Apple knows that the drivers and hardware will work with each other and that hardware and software are following the same shipping schedule. But there are downsides; Apple's OpenGL stack, for example, is a lot less capable and performs a lot worse than the ones from the GPU vendors in Windows. Both Nvidia and AMD have published drivers supporting the new Vulkan API for Windows and Linux—OS X support for this API is currently non-existent, with Apple making no public moves toward supporting it.

There are trade-offs being made here, and I certainly wouldn't call the PC model worse. But it causes frustration when things don't work the way they should. I hope at the very least that Microsoft is learning things from the experience and gaining a better understanding of why things go wrong and working on ways that it can make it easier for the hardware companies to develop drivers that are more reliable.

Clear communication is key

The aspect of this situation that Microsoft does fully control is communication, and this is arguably the more disappointing part of the situation. Microsoft has a support page for the Surface hardware, but I'm damned if I can find mention of the sleeping problems anywhere there. Not because Microsoft didn't know about the issues, but because the company has chosen not to mention them on its support page.

This is frustrating. A partial workaround for the sleep issues was to enable hibernation support. It's not as good as Connected Standby, but with hibernation turned on, problems such as draining batteries and getting hot in laptop bags are solved. Microsoft offers this kind of workaround routinely for software issues and from time to time describes workarounds in the Knowledge Base. Clearly enumerating known problems and their workarounds ("if your system doesn't sleep, use hibernate") and solutions ("if your screen flickers, update your display driver to version X") on the Surface support pages would be easy enough. At least that way customers would be able to readily diagnose their systems and avoid some of the worst bugs.

Instead, however, these bug acknowledgements are tucked away on Microsoft's support forums. A post from December 3, for example, acknowledges the power management problems and includes the hibernation workaround. Another from October acknowledges a specific unusual Wi-Fi issue, along with a fix for that, too. The support page for slow Wi-Fi connectivity does not mention this fix.

The Surface Pro 4 and Surface Book problems were unfortunate. But more unfortunate was Microsoft's non-response. In a broad sense, none of the Surface problems are unique. Surface Book, in particular, may have been a "perfect storm" of driver problems—a brand new processor with new graphics, a new chipset, custom hardware for detaching the screen, switchable hot-pluggable GPUs, all of which add complexity—but power management and display driver issues are by no means unique to Surface.

Microsoft could have shown the industry a better way: clear acknowledgement of issues, explicit information about which updates provide what fixes, and for those problems that are longer-term, it could offer workarounds and estimated timelines for when those issues might be fixed. In other words, treating the paying customers with the respect that someone dropping two-and-a-half grand on a new computer probably deserves.

That's not to say that doing this wouldn't be without some sensitivities. Microsoft is no doubt reluctant to finger Intel and Nvidia as the culprits for particular flaws, even if they are unambiguously to blame for some of the difficulties. It's understandable that Microsoft would want to protect its relationships with its partners, but in doing so it risks its relationships with its customers. There are also certain unscrupulous elements of the press that will take any acknowledgement of bugs as "evidence" that "everyone" with the hardware is suffering problems. That's unfortunate, but Microsoft should handle this by being clear about its messaging and taking care to warn that its estimates are not exact. Leaving customers in the lurch for three months cannot be regarded as the right way to handle this kind of complex issue.

This lack of communication continues even with the new firmware: we still don't know exactly what it changes and which scenarios it will and won't make a difference to.

The good news is that Microsoft has now done the most important part. Early reports are that the new firmware properly fixes the sleep behavior, giving the Surface Pro 4 and Surface Book the kind of sleep power consumption they are meant to have. As much as I think Microsoft should have spoken more about this issue, and sooner, there are worse things than waiting three months to fix a problem, such as not fixing a problem at all.