Maniphest T67349

Viewport/UI discrepancy or delay between dGPU and iGPU on nVidia Optimus Laptop
Closed, Resolved

Assigned To
Clément Foucault (fclem)
Authored By
Yanick Létourneau (tehSandwich)
Jul 20 2019, 10:12 PM
Tags
  • BF Blender
Subscribers
Clément Foucault (fclem)
Sebastian Parborg (zeddb)
Yanick Létourneau (tehSandwich)

Description

System Information
Operating system: Windows 10 x64
Graphics card: Intel UHD Graphics 630 & nVidia GeForce GTX 1060 (with nVidia Optimus)

Blender Version
Broken: 2.80, 2.80-rc3, 2.80-rc2, 2.79b...

Short description of error
On an nVidia Optimus laptop, there seems to be a 1-frame delay between the dGPU active state and the iGPU idle state, meaning that once the dGPU is inactive, the iGPU will instead render what it saw the frame preceding the last active frame. My guess is that Blender is too aggressive in finding it's idle state on Optimus Laptops, switching immediately when there is no movement or activity. Obviously, there is no problem when on the Integrated Graphics but it's a much greater performance issue on 2.80 than on 2.79 (and earlier).

Exact steps for others to reproduce the error
1- Set Blender to use the dGPU and open Blender.
(On 2.80, turn off anti-aliasing to get better results, Antialiasing seems to dampen the issue by delaying the moment it switches back to the iGPU)
2- Move the camera and obtain subtle differences.
3- Rapidly flick the camera around the cube/monkey/whatever and obtain significant differences.
4- Hover the cursor over the UI to snap it back to the dGPU result.
5- Move rapidly over the UI to obtain the same results but on the UI.

Note that it's completely irrespective of Start-up State aside from Antialiasing and GPU mode unless you have the perfect mix of drivers ;)

Event Timeline

Yanick Létourneau (tehSandwich) created this task.Jul 20 2019, 10:12 PM
Yanick Létourneau (tehSandwich) updated the task description.Jul 26 2019, 9:16 AM
Sebastian Parborg (zeddb) lowered the priority of this task from 90 to 30.Jul 29 2019, 6:18 PM
Sebastian Parborg (zeddb) added a subscriber: Sebastian Parborg (zeddb).

This sounds like a driver issue. Blender doesn't do any special scheduling for multi GPU setups (AFAIK).

Are you using the latest drivers from both intel and Nvidia?

Yanick Létourneau (tehSandwich) added a comment.Jul 29 2019, 7:10 PM
In T67349#738728, @Sebastian Parborg (zeddb) wrote:

This sounds like a driver issue. Blender doesn't do any special scheduling for multi GPU setups (AFAIK).

Are you using the latest drivers from both intel and Nvidia?

I've tried with several driver combinations and neither works. Just now, I've installed and tried the latest drivers from both and it doesn't do any difference.

Yanick Létourneau (tehSandwich) added a comment.Jul 29 2019, 7:23 PM

In fact, I should show off a demonstration of the problem: https://youtu.be/n61k5iyjEs4

Sebastian Parborg (zeddb) added a comment.Jul 30 2019, 12:41 PM

Just to be clear, this doesn't happen if you just use the intel GPU?

Yanick Létourneau (tehSandwich) added a comment.Jul 30 2019, 5:28 PM
In T67349#739444, @Sebastian Parborg (zeddb) wrote:

Just to be clear, this doesn't happen if you just use the intel GPU?

Indeed, but EEVEE becomes unreasonably slow when it's on the iGPU.

Sebastian Parborg (zeddb) assigned this task to Clément Foucault (fclem).Jul 30 2019, 5:55 PM
Sebastian Parborg (zeddb) raised the priority of this task from 30 to 90.
Sebastian Parborg (zeddb) added a subscriber: Clément Foucault (fclem).

@Clément Foucault (fclem) any input on this?

Yanick Létourneau (tehSandwich) updated the task description.Jul 31 2019, 7:38 PM
Yanick Létourneau (tehSandwich) added a comment.Sep 24 2019, 4:40 AM

As it turns out, it was indeed a driver bug. Updating my nVidia drivers to 436.30 essentially fixed the lag problem. However, there should be more testing to see what exactly went wrong in the first place.

Clément Foucault (fclem) changed the task status from Unknown Status to Resolved.Oct 2 2019, 5:20 PM

If a driver update fixed the issue, it's likely to be a driver bug. We don't do anything in this case and we fully rely on driver support for mixed gpu configuration.