From da32069a0c1c8c723d7ef45100049a8f0dd5d9c4 Mon Sep 17 00:00:00 2001 From: Kai Yao Date: Mon, 4 Oct 2021 13:58:51 -0700 Subject: Modified barrier API to accept multiple resources per call (#1959) Co-authored-by: Yong He --- tools/gfx/debug-layer.cpp | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'tools/gfx/debug-layer.cpp') diff --git a/tools/gfx/debug-layer.cpp b/tools/gfx/debug-layer.cpp index 869a93411..bab564f14 100644 --- a/tools/gfx/debug-layer.cpp +++ b/tools/gfx/debug-layer.cpp @@ -1007,18 +1007,36 @@ void DebugResourceCommandEncoder::uploadBufferData( baseObject->uploadBufferData(dstImpl->baseObject, offset, size, data); } -void DebugResourceCommandEncoder::textureBarrier(ITextureResource* texture, ResourceState src, ResourceState dst) +void DebugResourceCommandEncoder::textureBarrier( + size_t count, + ITextureResource* const* textures, + ResourceState src, + ResourceState dst) { SLANG_GFX_API_FUNC; - auto textureImpl = static_cast(texture); - baseObject->textureBarrier(textureImpl->baseObject, src, dst); + + List innerTextures; + for (size_t i = 0; i < count; i++) + { + innerTextures.add(static_cast(textures[i])->baseObject.get()); + } + baseObject->textureBarrier(count, innerTextures.getBuffer(), src, dst); } -void DebugResourceCommandEncoder::bufferBarrier(IBufferResource* buffer, ResourceState src, ResourceState dst) +void DebugResourceCommandEncoder::bufferBarrier( + size_t count, + IBufferResource* const* buffers, + ResourceState src, + ResourceState dst) { SLANG_GFX_API_FUNC; - auto bufferImpl = static_cast(buffer); - baseObject->bufferBarrier(bufferImpl->baseObject, src, dst); + + List innerBuffers; + for(size_t i = 0; i < count; i++) + { + innerBuffers.add(static_cast(buffers[i])->baseObject.get()); + } + baseObject->bufferBarrier(count, innerBuffers.getBuffer(), src, dst); } void DebugRayTracingCommandEncoder::endEncoding() -- cgit v1.2.3