summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorskallweitNV <64953474+skallweitNV@users.noreply.github.com>2024-03-16 23:02:40 +0100
committerGitHub <noreply@github.com>2024-03-16 15:02:40 -0700
commitdb60d1910e60b6955496d86daee26467b6a363f1 (patch)
tree51bd2c573614dc64cb186171548d1a2797574bd6
parent9b434e50f02f9ec02ce230de9042ce7448bae451 (diff)
[gfx] compile shaders when creating programs for d3d12/vulkan (#3774)
-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;
}