Linked by Thom Holwerda on Tue 15th Nov 2016 00:20 UTC

Here's a short little tip with some interesting background information. If you are running Windows on your Mac - like I'm doing on my 2015 retina MacBook Pro because macOS is far too unoptimised to run on it - and it's using an Intel graphics chip, be sure to replace Apple's own Boot Camp graphics drivers with Intel's own latest drivers.

The reason why you should do this is kind of fascinating. I noticed that while Windows as a whole ran quite fast and snappy - much more so than macOS with its crappy responsiveness, FPS drops, and hangs, even after reinstallations - two applications had responsiveness issues: Chrome and Microsoft Office. With Chrome, I chalked it up to #justchromethings and moved on. With Office though, I was perplexed.

The past few versions of Office, including the current one, are fast, snappy, and instant. The days where Office applications were slow and cumbersome are long gone, even on lower-end hardware like the 2015 retina MacBook Pro. However, Office applications were slow, rendering was terrible, and things like dragging and resizing Office windows was literally a slide show - and I wanted to know why.

I found out that on Windows, Microsoft Office uses its own rendering pipeline (framework? I'm not really sure what the accurate terminology is here), different from both Win32 and Metro applications. As it turns out, Office does its own check of the video card and driver to determine if hardware acceleration for Office should be disabled or not.

By default, hardware acceleration is automatically disabled in Office programs if certain video card and video card driver combinations are detected when you start an Office program. If hardware acceleration is automatically disabled by the program, nothing indicates that this change occurred.

Well, except that Office now runs like a total dog, of course.

Apparently, the Office team maintains its own list of video card/driver combinations and keeps this list a secret.

The list of video card/video driver combinations that trigger this automatic disabling of hardware graphics acceleration is not documented because the list is hard-coded in the Office programs and will be constantly changing as we discover additional video combinations that cause problems in Office programs.

When I ran the Intel Driver Update Utility on my retina MacBook Pro to determine if the Apple-provided Intel graphics driver was up-to-date, the tool found a newer driver, but warned me that my OEM (Apple) had modified the already-installed driver, and that I would lose those customisations. I proceeded to download the new driver anyway, only to be hit by a very peculiar dialog upon trying to install the driver Intel told me was newer than what I had installed: the installer warned my I was installing an older driver than what I had installed.

So, I decided to download the latest driver (the latest beta) manually, installed it, and this fixed not just Office, but also Chrome - which I find particularly baffling (maybe Chrome maintains a similar list?).

The list that the Office team maintains is not of good drivers, but of bad drivers. For Office's hardware acceleration to fail, the driver needs to be on the list. This means that the combination "Apple-modified Intel graphics driver/Iris 6100" was, at some point, added to the list, triggering the disabling of hardware acceleration for Office. The combination "Intel's own graphics driver/Iris 6100" is not on the list.

There's a number of possible explanations here, and I'm not really sure which one makes the most sense. Apple cares too little about Boot Camp users to intentionally cripple the Apple-supplied Intel drivers, so that's definitely not the cause. I also don't think the Intel driver magically improved a ton in the span of just a few weeks (there's only a few weeks of difference between the two versions, but I'm not trusting version numbers here) - but maybe it did? I honestly don't know. It's Intel's beta driver that isn't even signed by Microsoft, but somehow, the Office team tested it and removed it from their list? My first instinct was to think that because Apple had modified the driver, it wasn't on Microsoft's list - but since the list is for bad drivers, that makes no sense.

The most logical explanation I have right now - suggested by Steven Troughton-Smith - is that Apple changes a few things in the Intel driver to optimise Windows' battery life, which in turn tune down the performance, causing the Office team to add this specific driver/video card combination to the list. I've been keeping an eye on battery life since installing the driver, but haven't noticed much of a difference.

I don't think this little tip will be useful for a lot of people, but I really enjoyed trying to figure out what was going on.

Permalink for comment 637104
To read all comments associated with this story, please click here.
RE[3]: The real question
by Quikee on Tue 15th Nov 2016 12:22 UTC in reply to "RE[2]: The real question"
Member since:

Thats all rather basic 2D stuff which should be handled well by basic functions of the OS without any direct access to the GPU. Even more so if your company happens to produce that OS. Its not like we are living in the 1980s and only direct manipulation of hardware will allow smooth scrolling in your word processor.

What are you talking about - it is not basic 2D stuff. Things like blending, soft shadows, font and shape effects, gradients,... are pixel manipulation functions which CPU struggles with (usepecially on a HiDPI screen) but is the kind of task GPU were made for. Also if you want this (or just a simple task of re-sizing an image) to be smooth and distraction free (in a typical 16.6ms time frame it has to render) you will need to do it on the GPU - not to mention to increase battery life you get.

Also OS based 2D functions today use the GPU (well when they use Direct2D instead of Gdi+) - but if for some reason the GPU detected is blacklisted then the software rendered kicks in and you have again - a crappy experience.

But the 2D API didn't evolve over time (still more or less the same - immediate surface pixel manipulation than in the 1980's) and is not a good match for GPU. This is why lately many try to adapt a different (scenegraph like) API for 2D (Qt Quick and GTK+ 4 for example).

If you look at browsers you'll see that most of them utilize GPU in some way also - some do partial rendering with it, others are trying to use only exclusive GPU for rendering (Webrender in servo for example is using OpenGL to draw the whole page and faster than any browser), some do tiled rendering (mainly needed on the mobile - without it the experience is crappy)..

Reply Parent Score: 3