I've found that with some shaders, the ID3D11Device::CreateComputeShader function causes an access violation when the ID3D11Device in question is created with an AMD adapter. I've been able to repro this consistently and have put together a project to demonstrate the problem, linked here: https://bitbucket.org/bugreports00/dx11bugreport/src/master/
-the AV doesn't occur on the Microsoft Basic Render Driver.
-the AV can be reproduced with other shaders that use a similar nested if-pattern like the one found in the above project.
-the AV doesn't occur when using the DX12 api equivalent (WARP, AMD adapter, or otherwise).
The resolution of this error is of particular interest to me, as similar shaders of mine using this nested-if pattern have outperformed other patterns on DX12.
I'm running all this on Windows 10, and the GPU I'm using is an AMD RX580. My current Radeon Software Version is 19.5.2, but I'd experienced this problem in previous versions as well.
I'd greatly appreciate it if someone could forward this to all relevant parties. Thank you!
Thank you for reporting it and providing the repro. I've forwarded it to the DX team for investigation.
The DX team was able to reproduce the issue locally. They have filed a bug ticket against this issue and now they are investigating it. Once I've any further update on this, I'll share with you.
The issue has been fixed in the internal builds. The fix will be promoted to the public driver soon.