From a5d3bec25d70f23da1e79cd7773981ff34593611 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 15 Sep 2022 20:37:45 -0700 Subject: Run simple compute kernel in gfx-smoke test. (#2400) --- tools/gfx/renderer-shared.cpp | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'tools/gfx/renderer-shared.cpp') diff --git a/tools/gfx/renderer-shared.cpp b/tools/gfx/renderer-shared.cpp index 2e5454851..69046d216 100644 --- a/tools/gfx/renderer-shared.cpp +++ b/tools/gfx/renderer-shared.cpp @@ -472,14 +472,31 @@ Result RendererBase::createProgram2( ISlangBlob** outDiagnostic) { auto slangSession = slangContext.session.get(); - - SLANG_RELEASE_ASSERT(desc.sourceType == ShaderModuleSourceType::SlangSourceFile); - - auto fileName = (char*)desc.sourceData; + slang::IModule* module = nullptr; ComPtr diagnosticsBlob; - slang::IModule* module = slangSession->loadModule(fileName, diagnosticsBlob.writeRef()); - if (!module) - return SLANG_FAIL; + switch (desc.sourceType) + { + case ShaderModuleSourceType::SlangSourceFile: + { + auto fileName = (char*)desc.sourceData; + module = slangSession->loadModule(fileName, diagnosticsBlob.writeRef()); + if (!module) + return SLANG_FAIL; + break; + } + case ShaderModuleSourceType::SlangSource: + { + auto hash = getStableHashCode32((char*)desc.sourceData, desc.sourceDataSize); + auto hashStr = String(hash); + auto srcBlob = UnownedRawBlob::create(desc.sourceData, desc.sourceDataSize); + module = slangSession->loadModuleFromSource(hashStr.getBuffer(), hashStr.getBuffer(), srcBlob, diagnosticsBlob.writeRef()); + if (!module) + return SLANG_FAIL; + break; + } + default: + SLANG_RELEASE_ASSERT(false); + } Slang::List> componentTypes; componentTypes.add(ComPtr(module)); -- cgit v1.2.3