Merge pull request #112914 from blueskythlikesclouds/d3d12-buffer-create-fix

Fix buffer creation on old D3D12 runtimes.
This commit is contained in:
Thaddeus Crews 2025-11-20 11:10:53 -06:00
commit 8c505d98e4
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC

View file

@ -1059,6 +1059,11 @@ RDD::BufferID RenderingDeviceDriverD3D12::buffer_create(uint64_t p_size, BitFiel
if (p_usage.has_flag(BUFFER_USAGE_DYNAMIC_PERSISTENT_BIT)) {
allocation_desc.HeapType = dynamic_persistent_upload_heap;
// D3D12_HEAP_TYPE_UPLOAD mandates D3D12_RESOURCE_STATE_GENERIC_READ.
if (dynamic_persistent_upload_heap == D3D12_HEAP_TYPE_UPLOAD) {
initial_state = D3D12_RESOURCE_STATE_GENERIC_READ;
}
// We can't use STORAGE for write access, just for read.
resource_desc.Flags = resource_desc.Flags & ~D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS;
}