| 3805 | } |
| 3806 | |
| 3807 | void ScratchBufferD3D12::create(uint32_t _size, uint32_t _maxDescriptors) |
| 3808 | { |
| 3809 | m_size = _size; |
| 3810 | |
| 3811 | ID3D12Device* device = s_renderD3D12->m_device; |
| 3812 | m_incrementSize = device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); |
| 3813 | |
| 3814 | D3D12_DESCRIPTOR_HEAP_DESC desc; |
| 3815 | desc.NumDescriptors = _maxDescriptors; |
| 3816 | desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV; |
| 3817 | desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE; |
| 3818 | desc.NodeMask = 1; |
| 3819 | DX_CHECK(device->CreateDescriptorHeap(&desc |
| 3820 | , IID_ID3D12DescriptorHeap |
| 3821 | , (void**)&m_heap |
| 3822 | ) ); |
| 3823 | |
| 3824 | m_upload = createCommittedResource(device, HeapProperty::Upload, desc.NumDescriptors * 1024); |
| 3825 | m_gpuVA = m_upload->GetGPUVirtualAddress(); |
| 3826 | D3D12_RANGE readRange = { 0, 0 }; |
| 3827 | m_upload->Map(0, &readRange, (void**)&m_data); |
| 3828 | |
| 3829 | reset(m_gpuHandle); |
| 3830 | } |
| 3831 | |
| 3832 | void ScratchBufferD3D12::destroy() |
| 3833 | { |
no test coverage detected