Advertisement

DirectX produces TDR under Intel when reusing command queue

Started by March 13, 2020 09:26 AM
3 comments, last by Nessi 4 years, 10 months ago

I'm currently working on a directx rendering environment and encounter undefined behaviour under Intel cards. I'm currently using trivial synchronization, so that the CPU always waits for the GPU to finish after every ExecuteCommandLists(). Everything works perfectly fine, drawing, copying my resources etc. Since I work with different "passes" (draw passes, memory transfer pass, clear pass) I also have a "present" pass. There I have one commandlist with just 2 tasks, using a resource barrier to transform the render target from render target to present mode. I use the same command queue that is used for the swap chain and where all the drawing happens. Previous tasks were fully executed and waited for. When I try to execute the two tasks it produces a device removal under Intel cards without any further explanations. On other cards from different vendors it works perfectly fine. It definitely has something to do with the command queue, when I remove the resource barrier calls, it still crashes. If I create a new command queue it runs through, but crashes as well but in this case with a useful debug message that I need to use the same queue as for the swap chain.

Whats going wrong here and how can I get more information about the device removal?

Thanks for your help!

create command queue with GPU_TIMEOUT_DISABLE flag…

Advertisement

@Enzio599 This is not always enough. OS can overwrite this flag.

A driver update solved the issue. Don't know what was wrong.

This topic is closed to new replies.

Advertisement