summaryrefslogtreecommitdiffstats
path: root/tools/gfx/debug-layer.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx/debug-layer.h')
-rw-r--r--tools/gfx/debug-layer.h219
1 files changed, 126 insertions, 93 deletions
diff --git a/tools/gfx/debug-layer.h b/tools/gfx/debug-layer.h
index 567a399fe..e0f994a36 100644
--- a/tools/gfx/debug-layer.h
+++ b/tools/gfx/debug-layer.h
@@ -3,6 +3,7 @@
#include "slang-gfx.h"
#include "slang-com-ptr.h"
#include "core/slang-com-object.h"
+#include "command-encoder-com-forward.h"
namespace gfx
{
@@ -344,25 +345,140 @@ public:
class DebugCommandBuffer;
-class DebugComputeCommandEncoder : public UnownedDebugObject<IComputeCommandEncoder>
+class DebugResourceCommandEncoderImpl
{
public:
+ virtual DebugCommandBuffer* getCommandBuffer() = 0;
+ virtual bool getIsOpen() = 0;
+ virtual IResourceCommandEncoder* getBaseResourceEncoder() = 0;
+
+public:
+ virtual SLANG_NO_THROW void SLANG_MCALL copyBuffer(
+ IBufferResource* dst,
+ size_t dstOffset,
+ IBufferResource* src,
+ size_t srcOffset,
+ size_t size);
+ virtual SLANG_NO_THROW void SLANG_MCALL
+ uploadBufferData(IBufferResource* dst, size_t offset, size_t size, void* data);
+ virtual SLANG_NO_THROW void SLANG_MCALL
+ writeTimestamp(IQueryPool* pool, SlangInt index);
+ virtual SLANG_NO_THROW void SLANG_MCALL textureBarrier(
+ size_t count,
+ ITextureResource* const* textures,
+ ResourceState src,
+ ResourceState dst);
+ virtual SLANG_NO_THROW void SLANG_MCALL bufferBarrier(
+ size_t count,
+ IBufferResource* const* buffers,
+ ResourceState src,
+ ResourceState dst);
+ virtual SLANG_NO_THROW void SLANG_MCALL copyTexture(
+ ITextureResource* dst,
+ ResourceState dstState,
+ SubresourceRange dstSubresource,
+ ITextureResource::Offset3D dstOffset,
+ ITextureResource* src,
+ ResourceState srcState,
+ SubresourceRange srcSubresource,
+ ITextureResource::Offset3D srcOffset,
+ ITextureResource::Size extent);
+ virtual SLANG_NO_THROW void SLANG_MCALL uploadTextureData(
+ ITextureResource* dst,
+ SubresourceRange subResourceRange,
+ ITextureResource::Offset3D offset,
+ ITextureResource::Size extent,
+ ITextureResource::SubresourceData* subResourceData,
+ size_t subResourceDataCount);
+ virtual SLANG_NO_THROW void SLANG_MCALL clearResourceView(
+ IResourceView* view, ClearValue* clearValue, ClearResourceViewFlags::Enum flags);
+ virtual SLANG_NO_THROW void SLANG_MCALL resolveResource(
+ ITextureResource* source,
+ ResourceState sourceState,
+ SubresourceRange sourceRange,
+ ITextureResource* dest,
+ ResourceState destState,
+ SubresourceRange destRange);
+ virtual SLANG_NO_THROW void SLANG_MCALL copyTextureToBuffer(
+ IBufferResource* dst,
+ size_t dstOffset,
+ size_t dstSize,
+ ITextureResource* src,
+ ResourceState srcState,
+ SubresourceRange srcSubresource,
+ ITextureResource::Offset3D srcOffset,
+ ITextureResource::Size extent);
+ virtual SLANG_NO_THROW void SLANG_MCALL textureSubresourceBarrier(
+ ITextureResource* texture,
+ SubresourceRange subresourceRange,
+ ResourceState src,
+ ResourceState dst);
+ virtual SLANG_NO_THROW void SLANG_MCALL resolveQuery(
+ IQueryPool* queryPool,
+ uint32_t index,
+ uint32_t count,
+ IBufferResource* buffer,
+ uint64_t offset);
+ virtual SLANG_NO_THROW void SLANG_MCALL beginDebugEvent(const char* name, float rgbColor[3]);
+ virtual SLANG_NO_THROW void SLANG_MCALL endDebugEvent();
+};
+
+class DebugComputeCommandEncoder
+ : public UnownedDebugObject<IComputeCommandEncoder>
+ , public DebugResourceCommandEncoderImpl
+{
+public:
+ SLANG_GFX_FORWARD_RESOURCE_COMMAND_ENCODER_IMPL(DebugResourceCommandEncoderImpl)
+ virtual DebugCommandBuffer* getCommandBuffer() override { return commandBuffer; }
+ virtual bool getIsOpen() override { return isOpen; }
+ virtual IResourceCommandEncoder* getBaseResourceEncoder() override { return baseObject; }
+
+public:
virtual SLANG_NO_THROW void SLANG_MCALL endEncoding() override;
virtual SLANG_NO_THROW Result SLANG_MCALL
bindPipeline(IPipelineState* state, IShaderObject** outRootShaderObject) override;
virtual SLANG_NO_THROW void SLANG_MCALL dispatchCompute(int x, int y, int z) override;
virtual SLANG_NO_THROW void SLANG_MCALL
dispatchComputeIndirect(IBufferResource* cmdBuffer, uint64_t offset) override;
- virtual SLANG_NO_THROW void SLANG_MCALL writeTimestamp(IQueryPool* pool, SlangInt index) override;
public:
DebugCommandBuffer* commandBuffer;
bool isOpen = false;
};
-class DebugRenderCommandEncoder : public UnownedDebugObject<IRenderCommandEncoder>
+class DebugResourceCommandEncoder
+ : public UnownedDebugObject<IResourceCommandEncoder>
+ , public DebugResourceCommandEncoderImpl
{
public:
+ SLANG_GFX_FORWARD_RESOURCE_COMMAND_ENCODER_IMPL(DebugResourceCommandEncoderImpl)
+ virtual DebugCommandBuffer* getCommandBuffer() override { return commandBuffer; }
+ virtual bool getIsOpen() override { return isOpen; }
+ virtual IResourceCommandEncoder* getBaseResourceEncoder() override { return baseObject; }
+
+
+public:
+ virtual SLANG_NO_THROW void SLANG_MCALL endEncoding() override;
+
+public:
+ DebugCommandBuffer* commandBuffer;
+ bool isOpen = false;
+};
+
+class DebugRenderCommandEncoder
+ : public UnownedDebugObject<IRenderCommandEncoder>
+ , public DebugResourceCommandEncoderImpl
+{
+public:
+ SLANG_GFX_FORWARD_RESOURCE_COMMAND_ENCODER_IMPL(DebugResourceCommandEncoderImpl)
+ virtual DebugCommandBuffer* getCommandBuffer() override
+ {
+ return commandBuffer;
+ }
+ virtual bool getIsOpen() override { return isOpen; }
+ virtual IResourceCommandEncoder* getBaseResourceEncoder() override { return baseObject; }
+
+public:
virtual SLANG_NO_THROW void SLANG_MCALL endEncoding() override;
virtual SLANG_NO_THROW Result SLANG_MCALL
bindPipeline(IPipelineState* state, IShaderObject** outRootShaderObject) override;
@@ -396,7 +512,6 @@ public:
IBufferResource* countBuffer,
uint64_t countOffset) override;
virtual SLANG_NO_THROW void SLANG_MCALL setStencilReference(uint32_t referenceValue) override;
- virtual SLANG_NO_THROW void SLANG_MCALL writeTimestamp(IQueryPool* pool, SlangInt index) override;
virtual SLANG_NO_THROW Result SLANG_MCALL setSamplePositions(
uint32_t samplesPerPixel,
uint32_t pixelCount,
@@ -419,95 +534,18 @@ public:
bool isOpen = false;
};
-class DebugResourceCommandEncoder : public UnownedDebugObject<IResourceCommandEncoder>
+class DebugRayTracingCommandEncoder
+ : public UnownedDebugObject<IRayTracingCommandEncoder>
+ , public DebugResourceCommandEncoderImpl
{
public:
- virtual SLANG_NO_THROW void SLANG_MCALL endEncoding() override;
- virtual SLANG_NO_THROW void SLANG_MCALL copyBuffer(
- IBufferResource* dst,
- size_t dstOffset,
- IBufferResource* src,
- size_t srcOffset,
- size_t size) override;
- virtual SLANG_NO_THROW void SLANG_MCALL
- uploadBufferData(IBufferResource* dst, size_t offset, size_t size, void* data) override;
- virtual SLANG_NO_THROW void SLANG_MCALL writeTimestamp(IQueryPool* pool, SlangInt index) override;
- virtual SLANG_NO_THROW void SLANG_MCALL textureBarrier(
- size_t count,
- ITextureResource* const* textures,
- ResourceState src,
- ResourceState dst) override;
- virtual SLANG_NO_THROW void SLANG_MCALL bufferBarrier(
- size_t count,
- IBufferResource* const* buffers,
- ResourceState src,
- ResourceState dst) override;
- virtual SLANG_NO_THROW void SLANG_MCALL copyTexture(
- ITextureResource* dst,
- ResourceState dstState,
- SubresourceRange dstSubresource,
- ITextureResource::Offset3D dstOffset,
- ITextureResource* src,
- ResourceState srcState,
- SubresourceRange srcSubresource,
- ITextureResource::Offset3D srcOffset,
- ITextureResource::Size extent) override;
-
- virtual SLANG_NO_THROW void SLANG_MCALL uploadTextureData(
- ITextureResource* dst,
- SubresourceRange subResourceRange,
- ITextureResource::Offset3D offset,
- ITextureResource::Size extent,
- ITextureResource::SubresourceData* subResourceData,
- size_t subResourceDataCount) override;
-
- virtual SLANG_NO_THROW void SLANG_MCALL clearResourceView(
- IResourceView* view,
- ClearValue* clearValue,
- ClearResourceViewFlags::Enum flags) override;
-
- virtual SLANG_NO_THROW void SLANG_MCALL resolveResource(
- ITextureResource* source,
- ResourceState sourceState,
- SubresourceRange sourceRange,
- ITextureResource* dest,
- ResourceState destState,
- SubresourceRange destRange) override;
-
- virtual SLANG_NO_THROW void SLANG_MCALL copyTextureToBuffer(
- IBufferResource* dst,
- size_t dstOffset,
- size_t dstSize,
- ITextureResource* src,
- ResourceState srcState,
- SubresourceRange srcSubresource,
- ITextureResource::Offset3D srcOffset,
- ITextureResource::Size extent) override;
-
- virtual SLANG_NO_THROW void SLANG_MCALL textureSubresourceBarrier(
- ITextureResource* texture,
- SubresourceRange subresourceRange,
- ResourceState src,
- ResourceState dst) override;
-
- virtual SLANG_NO_THROW void SLANG_MCALL resolveQuery(
- IQueryPool* queryPool,
- uint32_t index,
- uint32_t count,
- IBufferResource* buffer,
- uint64_t offset) override;
-
-public:
- DebugCommandBuffer* commandBuffer;
- bool isOpen = false;
-};
+ SLANG_GFX_FORWARD_RESOURCE_COMMAND_ENCODER_IMPL(DebugResourceCommandEncoderImpl)
+ virtual DebugCommandBuffer* getCommandBuffer() override { return commandBuffer; }
+ virtual bool getIsOpen() override { return isOpen; }
+ virtual IResourceCommandEncoder* getBaseResourceEncoder() override { return baseObject; }
-class DebugRayTracingCommandEncoder : public UnownedDebugObject<IRayTracingCommandEncoder>
-{
public:
virtual SLANG_NO_THROW void SLANG_MCALL endEncoding() override;
- virtual SLANG_NO_THROW void SLANG_MCALL
- writeTimestamp(IQueryPool* pool, SlangInt index) override;
virtual SLANG_NO_THROW void SLANG_MCALL buildAccelerationStructure(
const IAccelerationStructure::BuildDesc& desc,
int propertyQueryCount,
@@ -526,11 +564,6 @@ public:
virtual SLANG_NO_THROW void SLANG_MCALL deserializeAccelerationStructure(
IAccelerationStructure* dest,
DeviceAddress source) override;
- virtual SLANG_NO_THROW void SLANG_MCALL memoryBarrier(
- int count,
- IAccelerationStructure* const* structures,
- AccessFlag sourceAccess,
- AccessFlag destAccess) override;
virtual SLANG_NO_THROW void SLANG_MCALL
bindPipeline(IPipelineState* state, IShaderObject** outRootObject) override;
virtual SLANG_NO_THROW void SLANG_MCALL dispatchRays(