Archive 17/01/2023.

Using external window disables Windows Aero

Enhex

After some recent(several months old) Nvidia driver updates, using external window causes Windows Aero to be turned off until the application is closed.
The Aero turn off happens after the line:

In:
OGLGraphics.cpp Graphics::Restore()

I encountered it in my level editor, using wxWidgets for the external window.

Anyone knows how to deal with this problem?

Enhex

I’ve contacted Nvidia and got some hints:
“We have received reports of this issue and the problem appears to be due to a recent change in the 370.xx drivers to expose 16bit float format by default in OpenGL as visible format. This change is likely causing some app to behavior incorrectly by requesting a pixel format that is not compatible with DWM. In fact the blender app version 2.77 also had the same problem and they updated to version 2.78 which is now working with 370.xx drivers. Development suggest updating the pixel format selection to resolved the problem on the app side.”

Referred Blender problem is: developer.blender.org/T49215

I tried to look into Urho’s source and it seems to use RGB888 PACKED32 with SDL.
Could the problem be with the external window?

cadaver

Self-created windows and external windows should handle the pixel format setup similarly, in the SDL function WIN_GL_SetupWindow(). Though I haven’t looked into that function in detail, it probably does some format selection magic.