Fix a crash when patching ray dispatches after device lost

This commit is contained in:
baldurk
2025-08-06 13:14:47 +01:00
parent 78b16112db
commit 6de786d243
+6 -2
View File
@@ -2292,8 +2292,12 @@ void D3D12RTManager::PrepareRayDispatchBuffer(GPUAddressRangeTracker *origAddres
D3D12GpuBufferHeapMemoryFlag::Default, lookupData.size(), 256,
&m_LookupBuffer);
memcpy(m_LookupBuffer->Map(), lookupData.data(), lookupData.size());
m_LookupBuffer->Unmap();
void *ptr = m_LookupBuffer ? m_LookupBuffer->Map() : NULL;
if(ptr)
{
memcpy(m_LookupBuffer->Map(), lookupData.data(), lookupData.size());
m_LookupBuffer->Unmap();
}
D3D12_GPU_VIRTUAL_ADDRESS baseAddr = m_LookupBuffer->Address();
m_LookupAddrs[0] = baseAddr + ObjectLookupOffset;