diff --git a/renderdoc/core/resource_manager.h b/renderdoc/core/resource_manager.h index aa842d9e7..e2a9b9a81 100644 --- a/renderdoc/core/resource_manager.h +++ b/renderdoc/core/resource_manager.h @@ -356,7 +356,7 @@ struct ResourceRecord } void MarkDataUnwritten() { DataWritten = false; } - void Insert(std::map &recordlist) + void Insert(std::map &recordlist) { bool dataWritten = DataWritten; @@ -385,11 +385,11 @@ struct ResourceRecord void RemoveChunk(Chunk *chunk) { LockChunks(); - m_Chunks.removeOneIf([chunk](const rdcpair &c) { return c.second == chunk; }); + m_Chunks.removeOneIf([chunk](const rdcpair &c) { return c.second == chunk; }); UnlockChunks(); } - void AddChunk(Chunk *chunk, int32_t ID = 0) + void AddChunk(Chunk *chunk, int64_t ID = 0) { if(ID == 0) ID = GetID(); @@ -451,7 +451,7 @@ struct ResourceRecord return m_Chunks.back().second; } - int32_t GetLastChunkID() const + int64_t GetLastChunkID() const { RDCASSERT(HasChunks()); return m_Chunks.back().first; @@ -501,14 +501,14 @@ protected: std::set Parents; - int32_t GetID() + int64_t GetID() { - static volatile int32_t globalIDCounter = 10; + static volatile int64_t globalIDCounter = 10; - return Atomic::Inc32(&globalIDCounter); + return Atomic::Inc64(&globalIDCounter); } - rdcarray> m_Chunks; + rdcarray> m_Chunks; Threading::CriticalSection *m_ChunkLock; std::map m_FrameRefs; @@ -1138,7 +1138,7 @@ void ResourceManager::MarkUnwrittenResources() template void ResourceManager::InsertReferencedChunks(WriteSerialiser &ser) { - std::map sortedChunks; + std::map sortedChunks; SCOPED_LOCK(m_Lock); diff --git a/renderdoc/driver/d3d11/d3d11_device.cpp b/renderdoc/driver/d3d11/d3d11_device.cpp index da0cc8cfd..3edf669c3 100644 --- a/renderdoc/driver/d3d11/d3d11_device.cpp +++ b/renderdoc/driver/d3d11/d3d11_device.cpp @@ -1975,7 +1975,7 @@ bool WrappedID3D11Device::EndFrameCapture(void *dev, void *wnd) RDCDEBUG("Accumulating context resource list"); - std::map recordlist; + std::map recordlist; record->Insert(recordlist); RDCDEBUG("Flushing %u records to file serialiser", (uint32_t)recordlist.size()); diff --git a/renderdoc/driver/d3d11/d3d11_manager.h b/renderdoc/driver/d3d11/d3d11_manager.h index 4f040d2e1..72e9ed778 100644 --- a/renderdoc/driver/d3d11/d3d11_manager.h +++ b/renderdoc/driver/d3d11/d3d11_manager.h @@ -157,7 +157,7 @@ struct D3D11ResourceRecord : public ResourceRecord SubResources[i]->SetDataPtr(ptr); } - void Insert(std::map &recordlist) + void Insert(std::map &recordlist) { bool dataWritten = DataWritten; diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 52a65ad60..5f7e7bfb9 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -2104,7 +2104,7 @@ bool WrappedID3D12Device::EndFrameCapture(void *dev, void *wnd) // in capframe (the transition is thread-protected) so nothing will be // pushed to the vector - std::map recordlist; + std::map recordlist; for(auto it = queues.begin(); it != queues.end(); ++it) { diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index 58f670326..51186053f 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -2324,7 +2324,7 @@ bool WrappedOpenGL::EndFrameCapture(void *dev, void *wnd) { RDCDEBUG("Accumulating context resource list"); - std::map recordlist; + std::map recordlist; m_ContextRecord->Insert(recordlist); for(auto it = m_ContextData.begin(); it != m_ContextData.end(); ++it) diff --git a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp index 4a51bee8b..b9e3888d7 100644 --- a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp @@ -666,14 +666,14 @@ void WrappedOpenGL::glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const v record->PopChunk(); } - int32_t id2 = record->GetLastChunkID(); + int64_t id2 = record->GetLastChunkID(); { Chunk *c = record->GetLastChunk(); SAFE_DELETE(c); record->PopChunk(); } - int32_t id1 = record->GetLastChunkID(); + int64_t id1 = record->GetLastChunkID(); { Chunk *c = record->GetLastChunk(); SAFE_DELETE(c); @@ -818,14 +818,14 @@ void WrappedOpenGL::glBufferData(GLenum target, GLsizeiptr size, const void *dat record->PopChunk(); } - int32_t id2 = record->GetLastChunkID(); + int64_t id2 = record->GetLastChunkID(); { Chunk *c = record->GetLastChunk(); SAFE_DELETE(c); record->PopChunk(); } - int32_t id1 = record->GetLastChunkID(); + int64_t id1 = record->GetLastChunkID(); { Chunk *c = record->GetLastChunk(); SAFE_DELETE(c); diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 81ac5b6e2..60d5267f4 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -1975,7 +1975,7 @@ bool WrappedVulkan::EndFrameCapture(void *dev, void *wnd) RDCDEBUG("Flushing %u command buffer records to file serialiser", (uint32_t)m_CmdBufferRecords.size()); - std::map recordlist; + std::map recordlist; // ensure all command buffer records within the frame evne if recorded before, but // otherwise order must be preserved (vs. queue submits and desc set updates)