diff options
| author | skallweitNV <64953474+skallweitNV@users.noreply.github.com> | 2024-03-16 23:02:40 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-16 15:02:40 -0700 |
| commit | db60d1910e60b6955496d86daee26467b6a363f1 (patch) | |
| tree | 51bd2c573614dc64cb186171548d1a2797574bd6 | |
| parent | 9b434e50f02f9ec02ce230de9042ce7448bae451 (diff) | |
[gfx] compile shaders when creating programs for d3d12/vulkan (#3774)
| -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; } |
