From db60d1910e60b6955496d86daee26467b6a363f1 Mon Sep 17 00:00:00 2001 From: skallweitNV <64953474+skallweitNV@users.noreply.github.com> Date: Sat, 16 Mar 2024 23:02:40 +0100 Subject: [gfx] compile shaders when creating programs for d3d12/vulkan (#3774) --- tools/gfx/d3d12/d3d12-device.cpp | 6 ++++++ tools/gfx/vulkan/vk-device.cpp | 5 +++++ 2 files changed, 11 insertions(+) (limited to 'tools') 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; } -- cgit v1.2.3