Why is our app showing in the NVIDIA Optimus "Applications blocking display mode change" dialog?

Hello everyone! I’m a developer for EarTrumpet, a well-known audio mixer application for Windows. We’ve been notified that our app seems to be interfering with NVIDIA Optimus’ display mode switching. You can find more details on this GitHub issue.

When NVIDIA switches from integrated to discrete graphics, for instance, when a 3D game starts, a dialog box appears indicating that a display mode change is being blocked.

I’ve gone through the NVIDIA Optimus rendering policies document, but I couldn’t find specific technical details on how NVIDIA makes this determination or potential solutions. I’m ready and capable of addressing any issues in the stack, but I need more information to move forward. Any guidance would be greatly appreciated.

@MarkusHoHo Is this something you can help with or route to the appropriate team?

Hi @withinrafael and welcome to the NVIDIA developer forums.

I cannot help right away beside asking what kind of Graphics interaction you do to render your app. Essentially what is blocking here is the WDM telling the graphics driver there is an app that uses resources that it cannot re-allocate to GPU (over-simplified). How that can happen? No idea.

But I did reach out to the Optimus team to see if they have some suggestions.

Thanks!

Hello @withinrafael,

is it possible that you are using Direct3D 9 in your app? I am told that that can cause the displaymode switch to be blocked since then it is interpreted as an offending app.

Hey @MarkusHoHo, I’ll double check but I’m pretty sure we explicitly put the app into software rendering to pull the app away from the GPU. It doesn’t show in the NVIDIA GPU monitoring app at least.

But one user had an idea–could this also perhaps happen if we’re somehow still attached to the HDMI audio device(s) exposed by the GPU?

One other note: Our app is open source so should be easy to reproduce there. Or if you have a test device program I’d love to request a device and test it here.

Thanks for your help so far!

Hey @MarkusHoHo, just checking in on this.

Hi again,

This could very well be one reason, yes.

I checked the internal tracking bug for this and there were some changes in flight that could address this, but they did not make it into any drivers yet.