summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/slang/compiler.cpp3
-rw-r--r--source/slang/diagnostic-defs.h1
-rw-r--r--source/slang/dxc-support.cpp11
3 files changed, 13 insertions, 2 deletions
diff --git a/source/slang/compiler.cpp b/source/slang/compiler.cpp
index 895c8d159..a003cf33d 100644
--- a/source/slang/compiler.cpp
+++ b/source/slang/compiler.cpp
@@ -192,8 +192,7 @@ namespace Slang
{
#if SLANG_ENABLE_DXIL_SUPPORT
// Must have dxc
- return (session->getOrLoadSharedLibrary(SharedLibraryType::Dxc, nullptr) &&
- session->getOrLoadSharedLibrary(SharedLibraryType::Dxil, nullptr)) ? SLANG_OK : SLANG_E_NOT_FOUND;
+ return session->getOrLoadSharedLibrary(SharedLibraryType::Dxc, nullptr) ? SLANG_OK : SLANG_E_NOT_FOUND;
#endif
break;
}
diff --git a/source/slang/diagnostic-defs.h b/source/slang/diagnostic-defs.h
index 4a43cf8e4..a7c89321d 100644
--- a/source/slang/diagnostic-defs.h
+++ b/source/slang/diagnostic-defs.h
@@ -447,6 +447,7 @@ DIAGNOSTIC(51092, Error, stageDoesntHaveInputWorld, "'$0' doesn't appear to have
DIAGNOSTIC(52000, Error, multiLevelBreakUnsupported, "control flow appears to require multi-level `break`, which Slang does not yet support");
+DIAGNOSTIC(52001, Warning, dxilNotFound, "dxil shared library not found, so 'dxc' output cannot be signed! Shader code will not be runnable in non-development environments.");
// 99999 - Internal compiler errors, and not-yet-classified diagnostics.
diff --git a/source/slang/dxc-support.cpp b/source/slang/dxc-support.cpp
index 7fe22191b..7d2d6dc0c 100644
--- a/source/slang/dxc-support.cpp
+++ b/source/slang/dxc-support.cpp
@@ -64,6 +64,17 @@ namespace Slang
return SLANG_FAIL;
}
+ {
+ if (!session->getSharedLibrary(SharedLibraryType::Dxil))
+ {
+ // If can't load dxil - dxc will not be able to sign output
+ // Output a suitable warning to the user
+ auto& sink = entryPoint->compileRequest->mSink;
+
+ sink.diagnose(SourceLoc(), Diagnostics::dxilNotFound);
+ }
+ }
+
ComPtr<IDxcCompiler> dxcCompiler;
SLANG_RETURN_ON_FAIL(dxcCreateInstance(
CLSID_DxcCompiler,