| 326 | } |
| 327 | |
| 328 | void DeferredCreateSRV(ID3D12Resource* resource, const D3D12_SHADER_RESOURCE_VIEW_DESC& desc, uint32 descriptorIdx) |
| 329 | { |
| 330 | for(uint64 i = 1; i < RenderLatency; ++i) |
| 331 | { |
| 332 | uint64 frameIdx = (CurrentCPUFrame + i) % RenderLatency; |
| 333 | uint64 writeIdx = InterlockedIncrement(&DeferredSRVCreateCount[frameIdx]) - 1; |
| 334 | DeferredSRVCreate& create = DeferredSRVCreates[frameIdx][writeIdx]; |
| 335 | create.Resource = resource; |
| 336 | create.Desc = desc; |
| 337 | create.DescriptorIdx = descriptorIdx; |
| 338 | } |
| 339 | } |
| 340 | |
| 341 | } // namespace DX12 |
| 342 | |