From 43b6f5c36cbe2529d93df0e44e319a330487ed0d Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 4 Jan 2022 11:24:11 -0800 Subject: gfx: Fix root shader object implementation in debug layer. (#2059) * gfx: Fix root shader object implementation in debug layer. * Fix. Co-authored-by: Yong He Co-authored-by: Theresa Foley --- tools/gfx/debug-layer.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'tools/gfx/debug-layer.cpp') diff --git a/tools/gfx/debug-layer.cpp b/tools/gfx/debug-layer.cpp index 97504017e..80c04bd1f 100644 --- a/tools/gfx/debug-layer.cpp +++ b/tools/gfx/debug-layer.cpp @@ -652,17 +652,26 @@ Result DebugDevice::createMutableShaderObject( } Result DebugDevice::createMutableRootShaderObject( - IShaderProgram* program, IShaderObject** outObject) + IShaderProgram* program, IShaderObject** outRootObject) { SLANG_GFX_API_FUNC; - return baseObject->createMutableRootShaderObject(program, outObject); + RefPtr outObject = new DebugShaderObject(); + auto result = baseObject->createMutableRootShaderObject( + getInnerObj(program), outObject->baseObject.writeRef()); + if (SLANG_FAILED(result)) + return result; + outObject->m_device = this; + outObject->m_slangType = nullptr; + outObject->m_rootComponentType = getDebugObj(program)->m_slangProgram; + returnComPtr(outRootObject, outObject); + return result; } Result DebugDevice::createProgram(const IShaderProgram::Desc& desc, IShaderProgram** outProgram) { SLANG_GFX_API_FUNC; - RefPtr outObject = new DebugShaderProgram(); + RefPtr outObject = new DebugShaderProgram(desc); auto result = baseObject->createProgram(desc, outObject->baseObject.writeRef()); if (SLANG_FAILED(result)) return result; @@ -1836,4 +1845,9 @@ Result DebugFence::setCurrentValue(uint64_t value) return baseObject->setCurrentValue(value); } +DebugShaderProgram::DebugShaderProgram(const IShaderProgram::Desc& desc) +{ + m_slangProgram = desc.slangProgram; +} + } // namespace gfx -- cgit v1.2.3