diff options
Diffstat (limited to 'tools/gfx/debug-layer.cpp')
| -rw-r--r-- | tools/gfx/debug-layer.cpp | 166 |
1 files changed, 164 insertions, 2 deletions
diff --git a/tools/gfx/debug-layer.cpp b/tools/gfx/debug-layer.cpp index daf86b60d..19504aaa4 100644 --- a/tools/gfx/debug-layer.cpp +++ b/tools/gfx/debug-layer.cpp @@ -139,6 +139,7 @@ SLANG_GFX_DEBUG_GET_INTERFACE_IMPL(Swapchain) SLANG_GFX_DEBUG_GET_INTERFACE_IMPL(TransientResourceHeap) SLANG_GFX_DEBUG_GET_INTERFACE_IMPL(QueryPool) SLANG_GFX_DEBUG_GET_INTERFACE_IMPL_PARENT(AccelerationStructure, ResourceView) +SLANG_GFX_DEBUG_GET_INTERFACE_IMPL(Fence) #undef SLANG_GFX_DEBUG_GET_INTERFACE_IMPL @@ -177,6 +178,7 @@ SLANG_GFX_DEBUG_GET_OBJ_IMPL(Swapchain) SLANG_GFX_DEBUG_GET_OBJ_IMPL(TransientResourceHeap) SLANG_GFX_DEBUG_GET_OBJ_IMPL(QueryPool) SLANG_GFX_DEBUG_GET_OBJ_IMPL(AccelerationStructure) +SLANG_GFX_DEBUG_GET_OBJ_IMPL(Fence) #undef SLANG_GFX_DEBUG_GET_OBJ_IMPL @@ -297,6 +299,12 @@ Result DebugDevice::getFeatures(const char** outFeatures, UInt bufferSize, UInt* return baseObject->getFeatures(outFeatures, bufferSize, outFeatureCount); } +Result DebugDevice::getFormatSupportedResourceStates(Format format, ResourceStateSet* outStates) +{ + SLANG_GFX_API_FUNC; + return baseObject->getFormatSupportedResourceStates(format, outStates); +} + DebugDevice::DebugDevice() { SLANG_GFX_API_FUNC_NAME("CreateDevice"); @@ -583,6 +591,13 @@ Result DebugDevice::createMutableShaderObject( return result; } +Result DebugDevice::createMutableRootShaderObject( + IShaderProgram* program, IShaderObject** outObject) +{ + SLANG_GFX_API_FUNC; + return baseObject->createMutableRootShaderObject(program, outObject); +} + Result DebugDevice::createProgram(const IShaderProgram::Desc& desc, IShaderProgram** outProgram) { SLANG_GFX_API_FUNC; @@ -695,6 +710,22 @@ Result DebugDevice::createQueryPool(const IQueryPool::Desc& desc, IQueryPool** o return SLANG_OK; } +Result DebugDevice::createFence(const IFence::Desc& desc, IFence** outFence) +{ + SLANG_GFX_API_FUNC; + RefPtr<DebugFence> result = new DebugFence(); + SLANG_RETURN_ON_FAIL(baseObject->createFence(desc, result->baseObject.writeRef())); + returnComPtr(outFence, result); + return SLANG_OK; +} + +Result DebugDevice::waitForFences( + IFence** fences, uint32_t fenceCount, bool waitForAll, uint64_t timeout) +{ + SLANG_GFX_API_FUNC; + return baseObject->waitForFences(fences, fenceCount, waitForAll, timeout); +} + IResource::Type DebugBufferResource::getType() { SLANG_GFX_API_FUNC; @@ -709,14 +740,28 @@ IBufferResource::Desc* DebugBufferResource::getDesc() DeviceAddress DebugBufferResource::getDeviceAddress() { + SLANG_GFX_API_FUNC; return baseObject->getDeviceAddress(); } Result DebugBufferResource::getNativeHandle(NativeHandle* outHandle) { + SLANG_GFX_API_FUNC; return baseObject->getNativeHandle(outHandle); } +Result DebugBufferResource::setDebugName(const char* name) +{ + SLANG_GFX_API_FUNC; + return baseObject->setDebugName(name); +} + +const char* DebugBufferResource::getDebugName() +{ + SLANG_GFX_API_FUNC; + return baseObject->getDebugName(); +} + IResource::Type DebugTextureResource::getType() { SLANG_GFX_API_FUNC; @@ -734,6 +779,14 @@ Result DebugTextureResource::getNativeHandle(NativeHandle* outHandle) return baseObject->getNativeHandle(outHandle); } +Result DebugTextureResource::setDebugName(const char* name) +{ + return baseObject->setDebugName(name); +} + +const char* DebugTextureResource::getDebugName() { return baseObject->getDebugName(); } + + DebugCommandBuffer::DebugCommandBuffer() { SLANG_GFX_API_FUNC; @@ -891,12 +944,26 @@ Result DebugComputeCommandEncoder::bindPipeline( return result; } +Result DebugComputeCommandEncoder::bindPipelineAndRootObject( + IPipelineState* state, IShaderObject* rootObject) +{ + SLANG_GFX_API_FUNC; + return baseObject->bindPipelineAndRootObject(getInnerObj(state), getInnerObj(rootObject)); +} + void DebugComputeCommandEncoder::dispatchCompute(int x, int y, int z) { SLANG_GFX_API_FUNC; baseObject->dispatchCompute(x, y, z); } +void DebugComputeCommandEncoder::dispatchComputeIndirect( + IBufferResource* cmdBuffer, uint64_t offset) +{ + SLANG_GFX_API_FUNC; + baseObject->dispatchComputeIndirect(getInnerObj(cmdBuffer), offset); +} + void DebugComputeCommandEncoder::writeTimestamp(IQueryPool* pool, SlangInt index) { SLANG_GFX_API_FUNC; @@ -925,6 +992,13 @@ Result DebugRenderCommandEncoder::bindPipeline( return result; } +Result DebugRenderCommandEncoder::bindPipelineAndRootObject( + IPipelineState* state, IShaderObject* rootObject) +{ + SLANG_GFX_API_FUNC; + return baseObject->bindPipelineAndRootObject(getInnerObj(state), getInnerObj(rootObject)); +} + void DebugRenderCommandEncoder::setViewports(uint32_t count, const Viewport* viewports) { SLANG_GFX_API_FUNC; @@ -982,6 +1056,30 @@ void DebugRenderCommandEncoder::drawIndexed(UInt indexCount, UInt startIndex, UI baseObject->drawIndexed(indexCount, startIndex, baseVertex); } +void DebugRenderCommandEncoder::drawIndirect( + uint32_t maxDrawCount, + IBufferResource* argBuffer, + uint64_t argOffset, + IBufferResource* countBuffer, + uint64_t countOffset) +{ + SLANG_GFX_API_FUNC; + baseObject->drawIndirect( + maxDrawCount, getInnerObj(argBuffer), argOffset, getInnerObj(countBuffer), countOffset); +} + +void DebugRenderCommandEncoder::drawIndexedIndirect( + uint32_t maxDrawCount, + IBufferResource* argBuffer, + uint64_t argOffset, + IBufferResource* countBuffer, + uint64_t countOffset) +{ + SLANG_GFX_API_FUNC; + baseObject->drawIndexedIndirect( + maxDrawCount, getInnerObj(argBuffer), argOffset, getInnerObj(countBuffer), countOffset); +} + void DebugRenderCommandEncoder::setStencilReference(uint32_t referenceValue) { SLANG_GFX_API_FUNC; @@ -1063,6 +1161,39 @@ void DebugResourceCommandEncoder::bufferBarrier( baseObject->bufferBarrier(count, innerBuffers.getBuffer(), src, dst); } +void DebugResourceCommandEncoder::copyTexture( + ITextureResource* dst, + ITextureResource::SubresourceRange dstSubresource, + ITextureResource::Offset3D dstOffset, + ITextureResource* src, + ITextureResource::SubresourceRange srcSubresource, + ITextureResource::Offset3D srcOffset, + ITextureResource::Size extent) +{ + SLANG_GFX_API_FUNC; + baseObject->copyTexture( + getInnerObj(dst), + dstSubresource, + dstOffset, + getInnerObj(src), + srcSubresource, + srcOffset, + extent); +} + +void DebugResourceCommandEncoder::uploadTextureData( + ITextureResource* dst, + ITextureResource::SubresourceRange subResourceRange, + ITextureResource::Offset3D offset, + ITextureResource::Offset3D extent, + ITextureResource::SubresourceData* subResourceData, + size_t subResourceDataCount) +{ + SLANG_GFX_API_FUNC; + baseObject->uploadTextureData( + getInnerObj(dst), subResourceRange, offset, extent, subResourceData, subResourceDataCount); +} + void DebugRayTracingCommandEncoder::endEncoding() { SLANG_GFX_API_FUNC; @@ -1173,6 +1304,13 @@ void DebugRayTracingCommandEncoder::bindPipeline( *outRootObject = &commandBuffer->rootObject; } +void DebugRayTracingCommandEncoder::bindPipelineAndRootObject( + IPipelineState* state, IShaderObject* rootObject) +{ + SLANG_GFX_API_FUNC; + baseObject->bindPipelineAndRootObject(getInnerObj(state), getInnerObj(rootObject)); +} + void DebugRayTracingCommandEncoder::dispatchRays( const char* rayGenShaderName, int32_t width, @@ -1189,7 +1327,7 @@ const ICommandQueue::Desc& DebugCommandQueue::getDesc() return baseObject->getDesc(); } -void DebugCommandQueue::executeCommandBuffers(uint32_t count, ICommandBuffer* const* commandBuffers) +void DebugCommandQueue::executeCommandBuffers(uint32_t count, ICommandBuffer* const* commandBuffers, IFence* fence) { SLANG_GFX_API_FUNC; List<ICommandBuffer*> innerCommandBuffers; @@ -1215,7 +1353,7 @@ void DebugCommandQueue::executeCommandBuffers(uint32_t count, ICommandBuffer* co } } } - baseObject->executeCommandBuffers(count, innerCommandBuffers.getBuffer()); + baseObject->executeCommandBuffers(count, innerCommandBuffers.getBuffer(), getInnerObj(fence)); } void DebugCommandQueue::wait() { baseObject->wait(); } @@ -1490,4 +1628,28 @@ IResourceView::Desc* DebugAccelerationStructure::getViewDesc() return baseObject->getViewDesc(); } +IFence::FenceStatus DebugFence::getStatus() +{ + SLANG_GFX_API_FUNC; + return baseObject->getStatus(); +} + +Result DebugFence::reset() +{ + SLANG_GFX_API_FUNC; + return baseObject->reset(); +} + +Result DebugFence::getSharedHandle(uint64_t* outHandle) +{ + SLANG_GFX_API_FUNC; + return baseObject->getSharedHandle(outHandle); +} + +Result DebugFence::getNativeHandle(void** outNativeHandle) +{ + SLANG_GFX_API_FUNC; + return baseObject->getNativeHandle(outNativeHandle); +} + } // namespace gfx |
