I run into a problem with DX12 on RX6800 XT but also on RX6750 XT, with driver version 22.Q4 and 23.2.2.
All our streamed textures are created as reserved resources and mapped on a per mip ( or mip tail ) level to a single resource heap.
After each UpdateTileMappings call (on Graphics Queue) a fence is signaled.
A thread waits on the fence, after the fence was reached the DirectStorage request to load the given mip or mip tail is submitted.
Sometimes (not always) the data for mip tail is not loaded into the newly mapped tile.
The only way to work around this issue is to submit an empty command list after UpdateTileMappings call ( also on Graphics Queue ), signal a fence and wait on this fence before submitting storage requests.
Kind regards,
Philipp Krause
Lead Programmer
Piranha-Bytes