summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/gfx/d3d12/d3d12-device.cpp6
-rw-r--r--tools/gfx/vulkan/vk-device.cpp5
2 files changed, 11 insertions, 0 deletions
diff --git a/tools/gfx/d3d12/d3d12-device.cpp b/tools/gfx/d3d12/d3d12-device.cpp
index 58b13fe41..33375497b 100644
--- a/tools/gfx/d3d12/d3d12-device.cpp
+++ b/tools/gfx/d3d12/d3d12-device.cpp
@@ -2031,6 +2031,12 @@ Result DeviceImpl::createProgram(
}
return rootShaderLayoutResult;
}
+
+ if (!shaderProgram->isSpecializable())
+ {
+ SLANG_RETURN_ON_FAIL(shaderProgram->compileShaders(this));
+ }
+
returnComPtr(outProgram, shaderProgram);
return SLANG_OK;
}
diff --git a/tools/gfx/vulkan/vk-device.cpp b/tools/gfx/vulkan/vk-device.cpp
index 1b046d8f2..b2cbb03c1 100644
--- a/tools/gfx/vulkan/vk-device.cpp
+++ b/tools/gfx/vulkan/vk-device.cpp
@@ -2234,6 +2234,11 @@ Result DeviceImpl::createProgram(
shaderProgram->linkedProgram->getLayout(),
shaderProgram->m_rootObjectLayout.writeRef());
+ if (!shaderProgram->isSpecializable())
+ {
+ SLANG_RETURN_ON_FAIL(shaderProgram->compileShaders(this));
+ }
+
returnComPtr(outProgram, shaderProgram);
return SLANG_OK;
}