Driver 522.25+: Flickering issue when using D3D12 HLSL dynamic resources in pixel shader

As of driver version 522.25, I am seeing a new problem with a program that uses Shader Model 6.6 HLSL dynamic resources with D3D12. There are flickering artifacts when copying from an intermediate resource. It seems like it’s behaving as if there’s a missing resource barrier. I’ve attached a minimal reproduction both as a release binary and as a complete Visual Studio 2019 project. There are more details in the included project readme.

Graphics Hardware Tested

  • RTX 3070
  • RTX 3080 10GB
  • RTX 3080 Ti

Driver Versions Confirmed Showing Problem

  • 522.25
  • 526.47
  • 526.86

Driver Versions Confirmed NOT Showing Problem

  • 517.48

Steps to reproduce:

  1. Install driver 522.25 or higher
  2. Unzip hlsl-dynamic-resource-bug-bin.zip and run Project.exe
  3. Wait a moment and observe flickering triangle. The expected output is a solid triangle with no flickering.

To use the source project, unzip hlsl-dynamic-resource-bug-source.zip. There is a readme included with instructions and more information about the code. Within the project, it’s possible to do an A/B comparison of using a descriptor table vs HLSL dynamic resources, where the former does not present any issue. I believe the behavior should be identical, as was the case with driver version 517.48 (and presumably earlier).

NVIDIA System Information 11-12-2022 11-28-18.txt (3.6 KB)

hlsl-dynamic-resource-bug-bin.zip (13.4 MB)

hlsl-dynamic-resource-bug-source.zip (8.9 MB)

2 Likes

To update, this is still occurring on driver 527.37 on the same hardware. Also, as another data point, it does not occur on a Steam Deck running Windows 10 using the latest AMD APU driver (Nov 8th).

Hello @zvin and welcome to the NVIDIA developer forums!

Thank you for sharing this information and updating on the latest driver.

I could reproduce and will forward this to the engineering team. Let’s hope they can identify what the root cause might be.

Thanks!

One more thing @zvin , which exact windows version are you using? You should find that on the Windows System information screen.

Thanks!

Hey @MarkusHoHo, thanks for the update. I’m on Windows 10 Pro 22H2 build 19045.2364.

Hey @MarkusHoHo, any update on this? It is still occurring on 531.18.

Sadly not, but I reminded engineering that this is still an issue.

Is there any news regarding this issue? On the latest drivers with my RTX 3080 I still very much have this same issue, except it’s even worse with more complicated renders than OP showcased. To show what I mean, I’ll attach a couple screenshots. The obviously good screenshot is before using dynamic resources. And I know the dynamic resources work as intended on at least the RTX 2070 and a radeon card (not sure which model off the top of my head).

Screenshot, with the left side being before dynamic resources, and right side being with dynamic resources: https://prnt.sc/JW6eCCaTjkkT

Welcome @bossletsplays to the NVIDIA developer forums.

I am slightly optimistic right now. Of course I cannot share internal information, but progress has been made.

1 Like

I’m experiencing the exact same issue on 537.34, so I guess this still hasn’t been fixed?
As mentioned in the original post, downgrading to 517.48 gets rid of the artifacting entirely.

  • Driver version 537.34 (latest as of post)
  • Windows 10 Pro 22H2 19045.3448 (latest as of post)

Hello @MrMarlax and welcome to the NVIDIA developer forums!

By now we do have a fix, but unfortunately we are not able to include it in the r53x driver versions anymore. But we do have a fix which will be part of a future driver release. I cannot say which one exactly though, I am sorry.

Thank you for the update!

In my case I discovered that the glitching only appeared when GPU-based validation was disabled, so it only affected release builds.
Needless to say that lead to a very confusing debugging experience.
I’m just relieved it was already reported and I managed to find this topic.

I had to update my drivers for an unrelated reason, so I decided to check on this again.
With 546.01, I can no longer replicate the bug in my program or the program in the original post.
I don’t recall the release highlights for any version mentioning a fix for this.
Maybe someone else can verify, but it appears to be fixed for me.

1 Like

Thank you @MrMarlax for sharing the information!

Yes, the r545 driver train should have that fix, and we usually don’t list every single bug fix that went into a release in the Highlights.

Thanks!