-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Intel Xe graphics driver does not support depth/stencil buffer in d3d9 #149
Comments
I updated my drivers to 32.0.101.6079, and now I have an exception in GLWpfControl/src/GLWpfControl/GLWpfControlRenderer.cs Lines 198 to 203 in d5c1851
Unchanged example app EXCEPT I'm building for Error message building for netcore3.1:
Error message building for net9.0-windows:
|
I submitted a request to Intel to look into the WGL_NV_DX_interop extensions not being found properly with driver 32.0.101.6078. I'll update here if they give me any useful info. |
I have run into the same issue on my computer, and have narrowed it down to two specific commits. It's definitely an issue with the Intel integrated graphics, as it works fine when using the dedicated NVIDIA graphics. On version 4.3.3 it was crashing instantly, but I found it was working back in version 4.2.3. I went back through the commits and I found that it was running fine until this commit, at which point it just renders a black screen. I traced it down to this line in
If I proceed forward through the commits it is only at this commit that it starts to crash instantly with a
Hardware specs:OS Name Microsoft Windows 11 Enterprise Dedicated graphics Integrated graphics |
The black screen in my case appears to be caused by |
I saw the same thing you're seeing, @nick-boey. With Intel driver version 32, it seems that the WGL library tries and fails to call that extension function. I sent Intel a sample project located here. If you can, roll your Intel driver back to 31 and see if it fixes the WGL linking issue. If it does, you may still need to remove the GLWpfControl calls that set up the depth/stencil buffer. |
As mentioned in #138, Intel integrated graphics does not support MSAA. After some experimentation on a newer machine, the newer integrated graphics also do not support the call to
NativeCreateDepthStencilSurface
in this call:GLWpfControl/src/GLWpfControl/Interop/DXInterop.cs
Lines 307 to 314 in d5c1851
The example app crashes when switching to any tab with a GL control with an "INVALID ARGS" error.
Disabling the call to
CreateDepthStencilSurface
and checking for a null ptr inIDirect3DSurface9.Release
fixes the issue, and the GL control renders properly.On another, older machine running W10 + Intel i5-10400, the call does not throw an error BUT the depth buffer definitely does not work, and I have to create a new framebuffer + depth/stencil attachment for depth to be processed correctly.
From what I can gather, Intel no longer supports d3d9, and relies on D3D9On12 for the API. From what I can gather, the ball is out of Intel's court on this one.
Likely workaround:
Only use d3d9 render target surface, and use the OpenGL API to set up a new "default" framebuffer. This breaks the convention of having depth enabled by default, but it will only effect Intel integrated graphics users.
Device specs:
Intel(R) Core(TM) i9-14900K
Intel UHD Graphics 770 (31.0.101.4953)
Windows 11 Pro
The text was updated successfully, but these errors were encountered: