diff options
| author | Kai Yao <kyao@nvidia.com> | 2021-10-04 13:58:51 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-04 13:58:51 -0700 |
| commit | da32069a0c1c8c723d7ef45100049a8f0dd5d9c4 (patch) | |
| tree | 69de59f5a1e68453df9b880bd1eed3f61147f30e /tools/gfx/debug-layer.cpp | |
| parent | 97bb82ebcdf8f1391b9d93b5a8d7b1dfc4e88e52 (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.cpp | 30 |
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() |
