https://learn.microsoft.com/en-us/windows-hardware/drivers/display/enhanced-barriers
由于两个看似非重叠的写入区域可能仍然具有重叠的缓存线,因此单次撰写的策略仍然适用。
由于必须在执行列表边界之间没有待处理的命令或缓存齐平操作,因此最初可以在没有障碍的执行列表范围内访问缓冲区。S和我将实时数据从上传缓冲区复制到(默认)环形缓冲区,在同一线程上,使用相同的队列,framebuff the
ID3D12CommandList
ID3D12CommandAllocator
Ss。有一个可能(来自不同的呼叫)写作,可能会因为重叠的高速缓存线而彼此干扰吗?
eDit
https://microsoft.github.io/directx-pecs/d3d/d3d12enhancedbarriers.html
不幸的是,由于有多少GPU管理资源缓存,同时对同一子资源的看似非重叠区域的写入操作仍可能导致数据腐败而没有障碍。因此,只要读取区域不与写入区域相交,任何数量的读取操作都可以访问缓冲区和同时访问纹理。ExecuteCommandLists
(在同一队列上,如框架时所做的)是否将其视为并发的写操作?
我相信,当敲打时,您应该使用
ExecuteCommandList
确保没有写入后的危险,即使您只从单个队列写作。