summaryrefslogtreecommitdiffstats
path: root/tools/gfx/debug-layer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx/debug-layer.cpp')
-rw-r--r--tools/gfx/debug-layer.cpp20
1 files changed, 17 insertions, 3 deletions
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<DebugShaderObject> 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<DebugShaderProgram> outObject = new DebugShaderProgram();
+ RefPtr<DebugShaderProgram> 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