summaryrefslogtreecommitdiffstats
path: root/tools/gfx/debug-layer.cpp
diff options
context:
space:
mode:
authorKai Yao <kyao@nvidia.com>2021-10-04 13:58:51 -0700
committerGitHub <noreply@github.com>2021-10-04 13:58:51 -0700
commitda32069a0c1c8c723d7ef45100049a8f0dd5d9c4 (patch)
tree69de59f5a1e68453df9b880bd1eed3f61147f30e /tools/gfx/debug-layer.cpp
parent97bb82ebcdf8f1391b9d93b5a8d7b1dfc4e88e52 (diff)
Modified barrier API to accept multiple resources per call (#1959)
Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'tools/gfx/debug-layer.cpp')
-rw-r--r--tools/gfx/debug-layer.cpp30
1 files changed, 24 insertions, 6 deletions
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<DebugTextureResource*>(texture);
- baseObject->textureBarrier(textureImpl->baseObject, src, dst);
+
+ List<ITextureResource*> innerTextures;
+ for (size_t i = 0; i < count; i++)
+ {
+ innerTextures.add(static_cast<DebugTextureResource*>(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<DebugBufferResource*>(buffer);
- baseObject->bufferBarrier(bufferImpl->baseObject, src, dst);
+
+ List<IBufferResource*> innerBuffers;
+ for(size_t i = 0; i < count; i++)
+ {
+ innerBuffers.add(static_cast<DebugBufferResource*>(buffers[i])->baseObject.get());
+ }
+ baseObject->bufferBarrier(count, innerBuffers.getBuffer(), src, dst);
}
void DebugRayTracingCommandEncoder::endEncoding()