diff options
Diffstat (limited to 'tools/gfx-unit-test/precompiled-module-2.cpp')
| -rw-r--r-- | tools/gfx-unit-test/precompiled-module-2.cpp | 18 |
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. |
