summaryrefslogtreecommitdiffstats
path: root/tools/gfx-unit-test/precompiled-module-2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx-unit-test/precompiled-module-2.cpp')
-rw-r--r--tools/gfx-unit-test/precompiled-module-2.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/tools/gfx-unit-test/precompiled-module-2.cpp b/tools/gfx-unit-test/precompiled-module-2.cpp
index e8ceb6f45..f997b2a7b 100644
--- a/tools/gfx-unit-test/precompiled-module-2.cpp
+++ b/tools/gfx-unit-test/precompiled-module-2.cpp
@@ -29,9 +29,12 @@ namespace gfx_test
auto globalSession = slangSession->getGlobalSession();
globalSession->createSession(sessionDesc, slangSession.writeRef());
- Slang::ComPtr<slang::IBlob> diagnosticsBlob;
- slang::IModule* module = slangSession->loadModule(shaderModuleName, diagnosticsBlob.writeRef());
- diagnoseIfNeeded(diagnosticsBlob);
+ slang::IModule* module;
+ {
+ Slang::ComPtr<slang::IBlob> diagnosticsBlob;
+ module = slangSession->loadModule(shaderModuleName, diagnosticsBlob.writeRef());
+ diagnoseIfNeeded(diagnosticsBlob);
+ }
if (!module)
return SLANG_FAIL;
@@ -49,7 +52,14 @@ namespace gfx_test
default:
return SLANG_FAIL;
}
- module->precompileForTarget(target, diagnosticsBlob.writeRef());
+
+ ComPtr<slang::IModulePrecompileService_Experimental> precompileService;
+ if (module->queryInterface(slang::SLANG_UUID_IModulePrecompileService_Experimental, (void**)precompileService.writeRef()) == SLANG_OK)
+ {
+ Slang::ComPtr<slang::IBlob> diagnosticsBlob;
+ precompileService->precompileForTarget(target, diagnosticsBlob.writeRef());
+ diagnoseIfNeeded(diagnosticsBlob);
+ }
}
// Write loaded modules to memory file system.