Jump to content
  • Advertisement
Sign in to follow this  
Dingleberry

[D3D12] ExecuteIndirect on compute pipeline

This topic is 900 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

I get errors if I try to transition a D3D12_RESOURCE_STATE_UNORDERED_ACCESS to D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT in a compute command list. Specifically, 

 

D3D12_RESOURCE_STATES has invalid flags for compute command list

 

Well, okay, switching to a direct command list makes the error go away... but uh, does this mean compute command lists can't reliably write to a buffer and then call ExecuteIndirect on it?

 

The API doesn't care if I don't transition from uav to indirect, but the ExecuteIndirect call predictably gets bad data, as I assume the writes to the buffer don't get finished off. 

 

Interestingly I can call UAV barriers just fine on a compute command list and they work great between different dispatches, however, it doesn't work in the case of ExecuteIndirect. 

 

Is the only option to synchronize compute queues with direct queues when trying to use ExecuteIndirect? That kind of sucks...

Share this post


Link to post
Share on other sites
Advertisement

Any help with this? To repro the issue all you need to do is write to a buffer and transition it from UAV to Indirect in a compute queue. I'm not trying to do something wacky like present from a compute queue.

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!