From 60716bf9b501b243c0edb325424718d7bd577e2a Mon Sep 17 00:00:00 2001 From: Alexey Panteleev Date: Fri, 2 Feb 2024 15:37:33 -0800 Subject: [PATCH] Renamed CommandListResourceStateTracker::endTrackingTextureState to setPermanentTextureState, removed the 'permanent' argument. Same for buffers. --- src/common/state-tracking.cpp | 12 +++++------- src/common/state-tracking.h | 6 +++--- src/d3d12/d3d12-state-tracking.cpp | 10 +++++----- src/vulkan/vulkan-state-tracking.cpp | 10 +++++----- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/common/state-tracking.cpp b/src/common/state-tracking.cpp index 9d2525b..e976bf1 100644 --- a/src/common/state-tracking.cpp +++ b/src/common/state-tracking.cpp @@ -100,13 +100,14 @@ namespace nvrhi tracking->state = stateBits; } - void CommandListResourceStateTracker::endTrackingTextureState(TextureStateExtension* texture, TextureSubresourceSet subresources, ResourceStates stateBits, bool permanent) + void CommandListResourceStateTracker::setPermanentTextureState(TextureStateExtension* texture, TextureSubresourceSet subresources, ResourceStates stateBits) { const TextureDesc& desc = texture->descRef; subresources = subresources.resolve(desc, false); - if (permanent && !subresources.isEntireTexture(desc)) + bool permanent = true; + if (!subresources.isEntireTexture(desc)) { std::stringstream ss; ss << "Attempted to perform a permanent state transition on a subset of subresources of texture " @@ -124,14 +125,11 @@ namespace nvrhi } } - void CommandListResourceStateTracker::endTrackingBufferState(BufferStateExtension* buffer, ResourceStates stateBits, bool permanent) + void CommandListResourceStateTracker::setPermanentBufferState(BufferStateExtension* buffer, ResourceStates stateBits) { requireBufferState(buffer, stateBits); - if (permanent) - { - m_PermanentBufferStates.push_back(std::make_pair(buffer, stateBits)); - } + m_PermanentBufferStates.push_back(std::make_pair(buffer, stateBits)); } ResourceStates CommandListResourceStateTracker::getTextureSubresourceState(TextureStateExtension* texture, ArraySlice arraySlice, MipLevel mipLevel) diff --git a/src/common/state-tracking.h b/src/common/state-tracking.h index 0ea0402..694bbf1 100644 --- a/src/common/state-tracking.h +++ b/src/common/state-tracking.h @@ -98,8 +98,8 @@ namespace nvrhi void beginTrackingTextureState(TextureStateExtension* texture, TextureSubresourceSet subresources, ResourceStates stateBits); void beginTrackingBufferState(BufferStateExtension* buffer, ResourceStates stateBits); - void endTrackingTextureState(TextureStateExtension* texture, TextureSubresourceSet subresources, ResourceStates stateBits, bool permanent); - void endTrackingBufferState(BufferStateExtension* buffer, ResourceStates stateBits, bool permanent); + void setPermanentTextureState(TextureStateExtension* texture, TextureSubresourceSet subresources, ResourceStates stateBits); + void setPermanentBufferState(BufferStateExtension* buffer, ResourceStates stateBits); ResourceStates getTextureSubresourceState(TextureStateExtension* texture, ArraySlice arraySlice, MipLevel mipLevel); ResourceStates getBufferState(BufferStateExtension* buffer); @@ -124,7 +124,7 @@ namespace nvrhi std::unordered_map> m_BufferStates; // Deferred transitions of textures and buffers to permanent states. - // They are executed only when the command list is executed, not when the app calls endTrackingTextureState. + // They are executed only when the command list is executed, not when the app calls setPermanentTextureState or setPermanentBufferState. std::vector> m_PermanentTextureStates; std::vector> m_PermanentBufferStates; diff --git a/src/d3d12/d3d12-state-tracking.cpp b/src/d3d12/d3d12-state-tracking.cpp index bb9beae..05f3ca3 100644 --- a/src/d3d12/d3d12-state-tracking.cpp +++ b/src/d3d12/d3d12-state-tracking.cpp @@ -229,14 +229,14 @@ namespace nvrhi::d3d12 { Texture* texture = checked_cast(_texture); - m_StateTracker.endTrackingTextureState(texture, subresources, stateBits, false); + m_StateTracker.requireTextureState(texture, subresources, stateBits); } void CommandList::setBufferState(IBuffer* _buffer, ResourceStates stateBits) { Buffer* buffer = checked_cast(_buffer); - m_StateTracker.endTrackingBufferState(buffer, stateBits, false); + m_StateTracker.requireBufferState(buffer, stateBits); } void CommandList::setAccelStructState(rt::IAccelStruct* _as, ResourceStates stateBits) @@ -244,14 +244,14 @@ namespace nvrhi::d3d12 AccelStruct* as = checked_cast(_as); if (as->dataBuffer) - m_StateTracker.endTrackingBufferState(as->dataBuffer, stateBits, false); + m_StateTracker.requireBufferState(as->dataBuffer, stateBits); } void CommandList::setPermanentTextureState(ITexture* _texture, ResourceStates stateBits) { Texture* texture = checked_cast(_texture); - m_StateTracker.endTrackingTextureState(texture, AllSubresources, stateBits, true); + m_StateTracker.setPermanentTextureState(texture, AllSubresources, stateBits); } @@ -259,7 +259,7 @@ namespace nvrhi::d3d12 { Buffer* buffer = checked_cast(_buffer); - m_StateTracker.endTrackingBufferState(buffer, stateBits, true); + m_StateTracker.setPermanentBufferState(buffer, stateBits); } ResourceStates CommandList::getTextureSubresourceState(ITexture* _texture, ArraySlice arraySlice, MipLevel mipLevel) diff --git a/src/vulkan/vulkan-state-tracking.cpp b/src/vulkan/vulkan-state-tracking.cpp index 0da2edd..6104941 100644 --- a/src/vulkan/vulkan-state-tracking.cpp +++ b/src/vulkan/vulkan-state-tracking.cpp @@ -368,14 +368,14 @@ namespace nvrhi::vulkan { Texture* texture = checked_cast(_texture); - m_StateTracker.endTrackingTextureState(texture, subresources, stateBits, false); + m_StateTracker.requireTextureState(texture, subresources, stateBits); } void CommandList::setBufferState(IBuffer* _buffer, ResourceStates stateBits) { Buffer* buffer = checked_cast(_buffer); - m_StateTracker.endTrackingBufferState(buffer, stateBits, false); + m_StateTracker.requireBufferState(buffer, stateBits); } void CommandList::setAccelStructState(rt::IAccelStruct* _as, ResourceStates stateBits) @@ -385,7 +385,7 @@ namespace nvrhi::vulkan if (as->dataBuffer) { Buffer* buffer = checked_cast(as->dataBuffer.Get()); - m_StateTracker.endTrackingBufferState(buffer, stateBits, false); + m_StateTracker.requireBufferState(buffer, stateBits); } } @@ -393,14 +393,14 @@ namespace nvrhi::vulkan { Texture* texture = checked_cast(_texture); - m_StateTracker.endTrackingTextureState(texture, AllSubresources, stateBits, true); + m_StateTracker.setPermanentTextureState(texture, AllSubresources, stateBits); } void CommandList::setPermanentBufferState(IBuffer* _buffer, ResourceStates stateBits) { Buffer* buffer = checked_cast(_buffer); - m_StateTracker.endTrackingBufferState(buffer, stateBits, true); + m_StateTracker.setPermanentBufferState(buffer, stateBits); } ResourceStates CommandList::getTextureSubresourceState(ITexture* _texture, ArraySlice arraySlice, MipLevel mipLevel)