diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/gfx/d3d12/d3d12-device.cpp | 6 | ||||
| -rw-r--r-- | tools/gfx/vulkan/vk-device.cpp | 5 |
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; } |
