Skip to content
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

WPF 3D content not working on Intel Iris XE #52

Closed
lukaslober opened this issue Sep 27, 2022 · 18 comments
Closed

WPF 3D content not working on Intel Iris XE #52

lukaslober opened this issue Sep 27, 2022 · 18 comments

Comments

@lukaslober
Copy link

lukaslober commented Sep 27, 2022

Hey,

from all informations I have now I think this is the right place to discuss this problem.

The problem is that WPF 3D content will not work on intel graphics without D3D9 support like the iris XE.
The first thread I opened was this one:
https://community.intel.com/t5/Graphics/Graphics-failure-with-WPF-3D-content-and-Iris-XE/td-p/1415196
It describes the problem in detail.

As Intel itself could not reproduce this issue I opened another one at the WPF repo:
dotnet/wpf#7076

But now it turned out that Intel can also reproduce this issue:
https://community.intel.com/t5/Graphics/3D-rendering-issue-on-12th-gen-Intel-Core-i3/m-p/1407118/highlight/true#M109118

@IanDunn-Intel @vdwtanner can you please look into this. Looks like more people are getting this problem here.

@ivancoredev
Copy link

Hello,

we also experiense the same issue. Our WPF 3D Charts doesn't show any picture on notebook with Intel Core i5 1235U processoe (12. generation) and integrated Intel Iris Xe graphics.

Details are described here: community.intel.com/t5/Graphics/Graphics-failure-with-WPF-3D-content-and-Iris-XE/m-p/1416202#M109941

@VassfjelletBigfoot
Copy link

Hi,

We also have the same problem.
It seems that all applications using WPF 3D will have major problems in the future, as 12th gen Intel CPUs are rolled out to a greater and greater extent.

Until a permanent solution from Intel or Microsoft arrives, I can suggest the following workarounds:

  1. Solution in code:
    Enter the following setting in the xaml code of your Window:
    RenderOptions.EdgeMode="Aliased"
  2. Solution for computers with dedicated graphics card:
    Go to Graphic Settings in Windows, add your application, and select "High performance".
  3. Solution for computers that only have Intel CPU embedded graphics:
    Download and install Intel Graphics Command Center. Add your application as a game and set Anti-Aliasing to "Always on" or "Always off". Both seem to work, as long as "Application Controlled" is not specified

Again, these are 3 different workarounds that we have found, but none are optimal. If anyone has any better suggestions, or a permanent solution comes out, I hope this can be shared!

@vdwtanner
Copy link
Collaborator

Hi, thanks for the report. I am currently unable to repro using the Helix-toolkit samples that were linked in one of your Intel tickets.

To help me better understand the issue:

  • Does this only happen on hybrid systems (both integrated and dedicated graphics present)
  • Can I get the build of windows that you are running (this may already be fixed in a later version that has yet to be serviced)
  • If possible, could you get a d3d9 pix capture of the rendering issue, or perhaps api trace?

Thanks!

@ivancoredev
Copy link

@vdwtanner:

Does this only happen on hybrid systems (both integrated and dedicated graphics present)_
No. My notebook has only integrated Intel Iris Xe (12.generation), no other graphic card.

Can I get the build of windows that you are running (this may already be fixed in a later version that has yet to be serviced)
Windows 11 Pro x64 22H2, build 22621.

Picture in attachmet. Must show smooth colored surface in the [middle.](url)
Telerik_WPF_UI_3D_Demo

@VassfjelletBigfoot
Copy link

* Does this only happen on hybrid systems (both integrated and dedicated graphics present)

No. It happens on all computers with 12 gen Intel CPU.
As mentioned, if you have a dedicated graphics card, you can solve the issue by selecting "High performance" in Windows Graphics Settings, but that option does not work if you don't have a dedicated graphics card.

* Can I get the build of windows that you are running (this may already be fixed in a later version that has yet to be serviced)

I have tested this on two different Dell computers; a Precision 5570 with dedicated graphics card and a Latitude (dont recall the model number) without dedicated graphics.
Both has Windows 10 21H2, build 19044.1889, with Experience Pack 120.2212.4180.0 and .Net Framework version 4.0.30319.42000.

I have used a small sample app to test the issue.
If your system is OK, the app should show a green cube, while on systems with 12 gen Intel, you will only see the black background.
https://download.nois.no/isydesign/wpf3dtest/wpf3dtest.exe

Here is another version of the same app, using the EdgeMode="Aliased" setting.
This shows a green cube (correct) on all systems, but without anti-aliasing you can see that the graphics is far from perfect:
https://download.nois.no/isydesign/wpf3dtest/wpf3dtest%20aliased.exe

Source code for the sample can be downloaded from this article:
https://www.codeproject.com/Articles/23332/WPF-3D-Primer

@lukaslober
Copy link
Author

@vdwtanner thanks for your quick response. I will try to create a pix capture or an api stream tomorrow because I have currently no access to the notebook with the specific hardware.
But could you tell me what apps will do this? Is it the PIXWin from the DirectXSDK? And what tool do you use to create api traces?

@vdwtanner
Copy link
Collaborator

@VassfjelletBigfoot thanks for the easy repro exe!
Interestingly it doesn't repro on my main system when 9on12 is enabled (even using the older build you mentioned), but I did get it to repro on an alder lake system that I have, so I've got a decent repro device now.

Thanks all for providing info

@mddifilippo89
Copy link

@vdwtanner
I work for Infragistics, I am trying to understand if there is something we should be doing to prevent this from occurring or if it's simply a Intel/Microsoft issue.

@VassfjelletBigfoot
Copy link

@VassfjelletBigfoot thanks for the easy repro exe! Interestingly it doesn't repro on my main system when 9on12 is enabled (even using the older build you mentioned), but I did get it to repro on an alder lake system that I have, so I've got a decent repro device now.

Glad I could help!
It seems (at least for our cases) that the issue occurs when Windows decides that the application should be rendered in the internal graphics card, not the dedicated one. As long as Windows understands that this is "a demanding 3D application", the problem disappears on computers with a dedicated card.
I have not found a way to make windows see our app as "a demanding 3D application" by default, but that might also be a relatively good workaround.

@vdwtanner
Copy link
Collaborator

@mddifilippo89 at this point I think it's safe to assume this is a Intel/Microsoft issue. For mitigation steps that you and your customers could take in the meantime, VassfjelletBigfoot has helpfully provided a set of workarounds that you could try.

@vdwtanner
Copy link
Collaborator

@VassfjelletBigfoot This answer on SO seems to be the only way to do it programmatically, that I'm aware of, and requires a restart of the app for it to take effect. Otherwise you can manually change the setting via graphics settings: Windows 10 walkthrough, Windows 11.

@Squall-Leonhart
Copy link

whether it works on a dgpu is irrelevant to the fact it doesn't work on the IGP.

@teefer505
Copy link

Multiple clients with new Win 10 and Win 11 PCs using 12th Gen intel w/ integrated graphics having problems rendering windows in our app

@Squall-Leonhart
Copy link

Multiple clients with new Win 10 and Win 11 PCs using 12th Gen intel w/ integrated graphics having problems rendering windows in our app

use the Arc/Iris Xe driver instead of the DCH driver.

@fforjan
Copy link

fforjan commented Jan 17, 2023

To people from Microsoft here, do you have any official message with the given previous workaround we could share to our customer ? We are debating in our team if giving a pointer to this thread is a right way to communicate to our customer.

@GrantDong
Copy link

@fforjan @teefer505
Upgrade to Iris Xe driver 31.0.101.3959 fixed this in our env, as the sample app provided by @VassfjelletBigfoot is now displaying correctly.

@vdwtanner
Copy link
Collaborator

Not an official message per se, but using the latest drivers (particularly ones that are WHQL certified) available for your platform will often resolve older issues. I tested with the newer driver that @Squall-Leonhart linked on one of Intel's new GPUs, and it did in fact resolve the issue. (without the new driver the issue was present, with the new driver (31.0.101.4032) the issue no longer repros).

Pasting the link again for convenience:
https://www.intel.com/content/www/us/en/download/726609/intel-arc-iris-xe-graphics-whql-windows.html

@Squall-Leonhart
Copy link

The Arc/Iris variant of the drivers include intels newer hybrid D3D9 driver that uses either their older IGP D3D9 driver, or an implementation of DXVK depending on the title being used

@vdwtanner this issue could still occur for other devices using 9on12, just lost intel as a reproduction device with these newer drivers is all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants