We are developing a CAD application for Windows 10, using DirectX 11 for rendering. We encountered a problem with ID3D11DeviceContext::GenerateMips() when our app runs using the Intel Iris Xe GPU. The symptom is that mipmap level 2 (counting from 0) gets a blocky artifact. This is visible in the app (when rendering a face at a certain distance and angle from the camera) and also visible in frame captures (in Visual Studio Graphics Analyzer). See runtime_capture.mp4 (look at how the linear sampler interpolates between the 1st and 2nd level of Bottom slice as it rotates) and VSGA_mipmap_level2.mp4 for more.
The issue is stable and reproducible (although the blocky artifact does seem to be indeterministic) on Windows 10 and Intel Iris Xe GPU. The issue is not reproducible with the dedicated GPU of the same machine (NVIDIA T500), so we suspect it to be a bug in the Intel driver (not sure). I attach the details of my system in msinfo32_SystemSummary.png, msinfo32_Display.png, DxDiag.txt and a report from Intel SSU in Intel_SSU.txt.
I also attach a sample program (MipmappingBugSample.zip) to demonstrate the issue. The project was created with Visual Studio 16.10.0 but any version of VS2019 should be able to open it. About the sample program:
It generates a mipmapped 2D texture array of 6 textures and renders them on the sides of a cube. The cube rotates around axis Z until the program terminates.
The program was based on the built-in Visual Studio 2019 template: DirectX 11 App (Universal Windows - C++/CX). See VS2019_proj_template.png.
In case you don't know the template: it renders a rotating cube with simple vertex coloring. I modified very few things:
The program uses the default sampler states (thus the warning on the debug console) but that is fine. You can see the mipmapping issue instantly in the app and by doing a frame capture in Visual Studio (and inspecting the texture array).
I attach the list of DLLs loaded during running the sample program on my machine in VS2019_Modules_Window.csv (as shown by the 'Modules' window of VS2019).
DXGI_FORMAT_R32_FLOAT also seems to work fine, so I suspect the problem is connected to normalization (UNORM and SNORM).
DXGI_FORMAT_R32_FLOAT doesn't work either, but there is a lower possibility of bumping into the issue (have to restart the sample app a few times to catch it)
I forgot to mention that even though my current driver version is 184.108.40.20610, I originally encountered the issue with version 220.127.116.1168. But then I updated in the hope of fixing the problem. Which didn't help.
By the way I went and checked the manufacturer's site (Lenovo) and the recommended driver version is what I have (18.104.22.16810):
Thank you for posting on the Intel️® communities. We are currently working on this request, the updates will be posted on the thread.
Intel Customer Support Technician