Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance and optimization
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
17540 Discussions

Iris Xe Help, Emulator? Most common failure create D3Device, Context, Buffer Iris Xe?

CaptBridgeport
1,012 Views

Hello

I create graphics software,  including Direct3D software.  Which  mostly runs on anything, including HD graphics (granted slow).  A customer just reported a software issue related to Iris Xe and  I'm not sure how to debug without hardware.  Is there possibly a software based emulator / driver for Iris Xe graphics?  The portion of code may be related to new ComputeShader shader logic, shader model 5, is there any known gotchas related to compute shaders, staging buffers, shader model 5  and Iris Xe?   Any advice or guess appreciated?  Will Intel send developers hardware for a week or 2 to test with?  But a driver that can emulate Iris Xe would be ideal (especially if it  also emitted debug strings to console like the D3Debug Layer)? 

- Update,  I ordered a refurbished Acer with  i5-1135G7 2.4GHz 8GB Ram with Iris Xe for testing and debugging.  Hoping to reproduce the reported crash and solve an Xe specific issue. Hoping it's not a brand issue. 

Labels (1)
0 Kudos
12 Replies
Alberto_R_Intel
Moderator
989 Views

CaptBridgeport, Thank you for posting in the Intel® Communities Support.


In reference to this scenario and your request, I will do further research on this matter, as soon as I get any updates I will post all the details on this thread.


Any questions, please let me know.


Regards,

Albert R.


Intel Customer Support Technician


CaptBridgeport
976 Views

Hello

Now  that I have a bit of time with the  i5-1135G7 2.4GHz 8GB Ram with Iris Xe.  So far I'm still stuck.  Our app does enumerate the adapters, devices, outputs.   First issue, still need to investigate as this is early, is enumerating WARP capabilities seems to get stuck as if next time I try to create the real HARDWARE type device and get its output, it return 0 for the Output as if I was requesting Outputs for a WARP type.  If I never enumerate the capabilites except HARDWARE I get passed this issue.  However the original issue persists,  even now with a valid Output, pSwapChain-Present returns OK but is hanging and TDR kicks in and removes the device but no error that the device is removed.  I have no idea why it's hanging.  Its a simple scene and all Direct3D items seem valid with correct info/descriptions.  I am noticing a bunch for weird first chance exceptions c++ exception monza::ddithreadingcontext and they seem related to releasing SAFE_RELEASE(pAdapter) pd3dDevive, pd3dDeviceContext as part of the code that enumerates all the adapter capabilities, as this code uses CreateDevice, for various parms to test capabilites and then releases.  All this Enumerate code runs with no issue except the Release triggers the first chance exception.  Maybe the order in how they are released is an issue.  But no other driver causes this behavior.  So this may be a big clue.   But ultimately, the issue is SwapChain->Present is hanging for no known reason when all other drives we have used have no issue.  

Zeebastion
Beginner
963 Views

If you look at game compatibility it seems like the kludged just enough driver functionality together for benchmarks and a few major games to show demos then shipped it. There are major AAA titles that still crash to desktop as soon as they launch. I personally have issues with games that ran fine on UHD. 

 

Probably easier to just tell your customers that Xe is unsupported. That's what game developers are doing. 

CaptBridgeport
942 Views

After 2 days of brutal random behavior debugging, I worked around all Intel Iris Xe limitations and have projects running nicely on Iris Xe graphics.

The Iris Xe driver is sort of a hot mess.  Intel must have designed and tested for 5+ year old games.

The major issues were: each issue being random, having to be solved with no help from debug messages or return codes, the system just crashed. 😞

1) enumerating the driver capabilities for WARP type was somehow corrupting the final CreateDevice call which resulted in not acquiring an Output interface for the monitor. Thus the SwapChain was not creating. Solution, no longer worry about WARP types and stick to enumerating HARDWARE types only. This was a hard issue to find. 🙂 so happy to get past this, but whoops, another issue.

2) the driver was not providing accurate pd3dDevice->CheckMultisampleQualityLevels (it simply stated it supported 1,24,8 counts) so I had to cherry pick this driver description string and revert sample Count = 1 and Quality = 0, thus no MSAA and shaggy images. Any other Count or Quality would crash . After banging for ever, I went back to super early DirectX tutorial code and tested and it worked and started figuring out what was different. I tried everything to get CheckMultisampleQuality to work but not. 🙂 so happy to get past this, but whoops, another issue.

3) the compute shader supported ShaderModel 5, but un-luckily did not support double precision shader storage (which shader model 5 generally supports) so this is a big can of worms as I had to change the shader and non-shader logic to use floats instead of doubles. There is a way to work around it, but tedious, and may ultimately double the amount of code to write. I was hoping to only have to rely on inherent double shader storage as shader model 5 should have by now.

But all is running now and hopefully this helps anyone reading.  Intel has no reason to not properly implement CheckMultiSampleQualityLevel. The double precision shader issue may be a hardware issue and never supported. Who knows about issue 1, it seems odd, maybe my code but I don't believe so as the code worked for many years until Iris showed up.

Side note, the March 2021 driver caused my debugger to hang for 3-4 seconds after each step in code. So I had to revert to 08/2020 driver to make it easier to debug with no hanging code-steps.  So the 08/2020 driver was more useful to me.

Side note, the first chance exceptions c++ exception monza::ddithreadingcontext issue was mute. The early DirectX tutorials also had this but everything seems stable to ignore them.

Happy coding, Robert - Gigasoft.com, for mission critical engineering/scientific charting to embed in your software and hardware.

 

Zeebastion
Beginner
932 Views

It must have felt great seeing it run. Hope you didn't have to spend all weekend on it. I'm an embedded developer, and after reading your first post I assumed they must have been pressed for time and shipped it with a lot of functions half finished or entirely stubbed. 

 

Regarding game compatibility, I think they focused on implementing just enough for several major engines to launch. PC first games run fine, most multi platform games run fine, but some inexplicably don't. Which probably explains why what you saw while trying to debug. 

 

Launching Iris Xe, Xe max, and uhd 7xx was probably a monumental effort from the driver team. It's so specialized it's not like they could have a hiring fair. 

Alberto_R_Intel
Moderator
908 Views

Hello CaptBridgeport, I just received an update on this matter.


Regarding your original request, just to let you know, we do not have an emulator that we can provide for this scenario.


"But all is running now and hopefully this helps anyone reading." Perfect, excellent, it is great to know that everything is running now and we also thank you for sharing all those details and your feedback about this topic since, as you mentioned, they will be very helpful and useful for all the peers viewing this thread.


Thank you very much to Zeebastion as well for all your comments provided on this thread.


Regards,

Albert R.


Intel Customer Support Technician


CaptBridgeport
895 Views

Update - Below is fix, and the gigasoft website now has PE9DEMO.EXE updated with this fix (17M simple self extracting signed exe, we call it the "canned demo"). However I'm nervous about Iris Xe Max, Iris Xe Pod, desktop Iris Xe Graphics, and Iris Plus, and any graphics really just to get more feedback. So if anyone has these available, I'd really appreciate getting the canned PE9DEMO tested with these graphics units, examples 400+, the 3D Scientific Chart examples, making sure nothing seems delayed and/or Microsoft Basic Rendering not doing the work. 

It would be great if Intel provided a bit of quick and easy testing of PE9DEMO. It literally takes 1 minute.  Intel being a billion dollar corp and all us small folk collectively spending 10's of thousands of hours because of Intel's lack of moral obiligation to prevent such collective work. 

And, does anyone know best method/strategy to work around the issue of preventing such crashes and un-reliable CheckMultisampleQualityLevels;  minus cherry picking for this graphics unit in our logic.   A solution that may catch other similar problems with other drivers. 

Zeebastion
Beginner
874 Views

Just want to let you know I (just a schmuck) downloaded the demo, navigated to the 3D charts, and was able to click through many of them with no error. I've got a an i7-1165g7 laptop. Hopefully that's at least a little reassuring. 

CaptBridgeport
867 Views
CaptBridgeport
890 Views

One more, hopefully,  can Iris Xe Graphics support MSAA in any configuration?  In other words, can Sample.Count in any way be set to 2, or 4, or 8? And how or with what considerations?  

Alberto_R_Intel
Moderator
880 Views

Hello CaptBridgeport, Thank you very much for your response and your comments.


We will continue with our research on this topic and as soon as I get more details, I will post them on this thread.


Regards,

Albert R.


Intel Customer Support Technician



Alberto_R_Intel
Moderator
848 Views

Hello CaptBridgeport, I just received an update on this matter.

 

After reviewing the case, we determined that the best course of action is for you to visit our Intel® Developer Zone website since you are developing software.

 

On the Intel® Developer Zone website, you will find personalized content, leverage Intel's design, and support for developers. We also have the "Game Development" department there for you to contact them:

https://software.intel.com/content/www/us/en/develop/home.html

 

Regards,

Albert R.

 

Intel Customer Support Technician

 

Reply