Jump to content
  • Advertisement
Sign in to follow this  
Mr_Fox

DX12 Difference between launch DX12 app with/without Graphic Debugger

This topic is 657 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey Guys,

 

Does anyone know the differences between launch your DX12 app with/without VSGD (visual studio graphic debug)?

I have a QueryHeap (timestamp) corruption bug only show up if I run my DX12 app on GTX1080 without VSGD. It's kinda make me feel like it's a nvidia driver bug since it only happen on GTX1080 (I tried with GTX980, GTX680m, they works properly under all conditions). The strange thing is that if I do graphic debug on GTX1080, everything get back to normal.... 

 

So I was wondering is GPU works in a different mode if I attach VSGD? Or there are other settings get changed when launch with VSGD.

 

Thanks in advance

Share this post


Link to post
Share on other sites
Advertisement

Any guess? certain debuglayer macros get set? default GPU heap variable after creation? Or this is really driver bug? 

Share this post


Link to post
Share on other sites

The graphics debugger only runs when you assume it works.

What you are probably looking for is the Dx12 Debugging Layer, which needs to be explicitly enabled in code.

Share this post


Link to post
Share on other sites

The graphics debugger only runs when you assume it works.

What you are probably looking for is the Dx12 Debugging Layer, which needs to be explicitly enabled in code.

I have debuglayer enabled.  Ideally, running the program with / without graphic debug shouldn't change anything in related to the program logic, but what I observed is that without graphic debugger, on my GTX1080. my queryheap get corrupted which won't happen when graphic debugger is attached, or if I use other GPUs...

Share this post


Link to post
Share on other sites

I've seen the same exact problem on my GTX 1070: some of my timestamp queries get screwed up, but work fine if I run under the graphics debugger. It only happens on my 1070, so I'm fairly sure it's a driver bug.

Share this post


Link to post
Share on other sites

I've seen the same exact problem on my GTX 1070: some of my timestamp queries get screwed up, but work fine if I run under the graphics debugger. It only happens on my 1070, so I'm fairly sure it's a driver bug.

Thanks MJP, you save me potentially days of worrying... But what's the best way to have Nvidia guys looking over that and get a fix during later driver release? I really wish to have it fixed since 1080 will be my major GPU... or " don't even think about it....."

Share this post


Link to post
Share on other sites

I've experienced some issues due to power saving features and disabling them in NVIDIA Control Panel seemed to solve the issue.:

5jMAFwK.png

Edited by Zaoshi Kaba

Share this post


Link to post
Share on other sites

I've experienced some issues due to power saving features and disabling them in NVIDIA Control Panel seemed to solve the issue.

 

Thanks Zaoshi for the suggestion, but I tried it, the problem still exist :(

Share this post


Link to post
Share on other sites

Do you call SetStablePowerState on the device. If nothing is said about the debug layer or vsgd layer, i can definitely imagine them turning that mode on under the hood, and it is to keep time stamp consistent across command list, so...

Share this post


Link to post
Share on other sites

Do you call SetStablePowerState on the device. If nothing is said about the debug layer or vsgd layer, i can definitely imagine them turning that mode on under the hood, and it is to keep time stamp consistent across command list, so...

Yup, I turned that on before creating the command queue, but that doesn't help :(

Also I guess if you turn SetStablePowerState off, your timer stamp value will change, but should never get 'reordered' right? In my case I get some negative duration, and some timer order is totally wrong... looks pretty much like I have some garbage data in my timestampqueryheap... 

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!