Jump to content
  • Advertisement
Sign in to follow this  
ZachBethel

[D3D12] rules for mapping read back heaps

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

Is it valid behavior to map a region of a read back resource while simultaneously writing to a disjoint region via the GPU? I've got a profiler subsystem with a single read back buffer that is N times the size of my query heap for N frames.

The debug SDK layer gives a warning that the subresource is mapped while writing from the GPU.

Share this post


Link to post
Share on other sites
Advertisement

Yes, that's valid. We should probably remove this warning. When running on systems with UMA set to true and CacheCoherentUMA set to false, readback heaps need to be mapped and unmapped more frequently to ensure cache flushing.

 

However I'm pretty sure we don't and never will have a system with DX12 drivers with those architecture properties.

Share this post


Link to post
Share on other sites

Yes, that's valid. We should probably remove this warning. When running on systems with UMA set to true and CacheCoherentUMA set to false, readback heaps need to be mapped and unmapped more frequently to ensure cache flushing.
 
However I'm pretty sure we don't and never will have a system with DX12 drivers with those architecture properties.

Just for curiosity: what kind of modern UMA GPUs are not cache coherent?

Share this post


Link to post
Share on other sites

I thought that Intel's older-yet-still-dx12-capable GPU's were UMA but not cache coherent?

Or maybe I'm remembering that wrong and the difference is that the old ones have two independent address-spaces, while the new one shares a common address space between CPU/GPU... and old/new are both fully coherent?

Share this post


Link to post
Share on other sites

Mostly just mobile architectures, as far as I'm aware.

 

Aren't modern Adreno GPUs cache coherent? O_O

 

I would love to see D3D12 support on mobile..

Share this post


Link to post
Share on other sites

D3D12 is only supported on Haswell and newer, which are all cache coherent between CPU and GPU. You might be thinking about a unified virtual address space, which is not yet implemented on any current GPU.

 

When D3D12 was being developed, GPU cache coherency was in the Adreno's roadmap, but not yet there. Yes, it has been added since. I don't have any info other than we tried not to preclude the ability to have mobile drivers, but at the moment we don't have any.

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.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!