summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2018-11-28 17:56:32 -0500
committerTim Foley <tfoleyNV@users.noreply.github.com>2018-11-28 14:56:32 -0800
commit7f0ccc5580faa43c2554d9d016c27ebe069362c5 (patch)
treecd958b3cb2e162c18c08583935982f0416f5a07b /source
parente21d5ad650130631e17662ce8f22d15315ab597a (diff)
* Renamed spSessionHasCompileTargetSupport to spSessionCheckCompileTargetSupport. (#728)
* Improved return codes from spSessionCheckCompileTargetSupport
Diffstat (limited to 'source')
-rw-r--r--source/slang/compiler.cpp37
-rw-r--r--source/slang/compiler.h2
-rw-r--r--source/slang/slang.cpp4
3 files changed, 22 insertions, 21 deletions
diff --git a/source/slang/compiler.cpp b/source/slang/compiler.cpp
index 1e514812a..37e9827f8 100644
--- a/source/slang/compiler.cpp
+++ b/source/slang/compiler.cpp
@@ -181,31 +181,33 @@ namespace Slang
}
- bool hasCodeGenTarget(Session* session, CodeGenTarget target)
+ SlangResult checkCompileTargetSupport(Session* session, CodeGenTarget target)
{
switch (target)
{
- case CodeGenTarget::Unknown: return false;
- case CodeGenTarget::None: return true;
+ case CodeGenTarget::None:
+ {
+ return SLANG_OK;
+ }
case CodeGenTarget::GLSL:
case CodeGenTarget::GLSL_Vulkan:
case CodeGenTarget::GLSL_Vulkan_OneDesc:
{
// Can always output GLSL
- return true;
+ return SLANG_OK;
}
case CodeGenTarget::HLSL:
{
// Can always output HLSL
- return true;
+ return SLANG_OK;
}
case CodeGenTarget::SPIRVAssembly:
case CodeGenTarget::SPIRV:
{
#if SLANG_ENABLE_GLSLANG_SUPPORT
- return session->getOrLoadSharedLibrary(Slang::SharedLibraryType::Glslang, nullptr) != nullptr;
+ return session->getOrLoadSharedLibrary(Slang::SharedLibraryType::Glslang, nullptr) ? SLANG_OK : SLANG_E_NOT_FOUND;
#else
- return false;
+ return SLANG_E_NOT_IMPLEMENTED;
#endif
}
case CodeGenTarget::DXBytecode:
@@ -213,9 +215,9 @@ namespace Slang
{
#if SLANG_ENABLE_DXBC_SUPPORT
// Must have fxc
- return session->getOrLoadSharedLibrary(SharedLibraryType::Fxc, nullptr) != nullptr;
+ return session->getOrLoadSharedLibrary(SharedLibraryType::Fxc, nullptr) ? SLANG_OK : SLANG_E_NOT_FOUND;
#else
- return false;
+ return SLANG_E_NOT_IMPLEMENTED;
#endif
}
@@ -224,19 +226,18 @@ namespace Slang
{
#if SLANG_ENABLE_DXIL_SUPPORT
// Must have dxc
- return session->getOrLoadSharedLibrary(SharedLibraryType::Dxc, nullptr) &&
- session->getOrLoadSharedLibrary(SharedLibraryType::Dxil, nullptr);
+ return (session->getOrLoadSharedLibrary(SharedLibraryType::Dxc, nullptr) &&
+ session->getOrLoadSharedLibrary(SharedLibraryType::Dxil, nullptr)) ? SLANG_OK : SLANG_E_NOT_FOUND;
#else
- return false;
+ return SLANG_E_NOT_IMPLEMENTED;
#endif
}
-
- default:
- {
- SLANG_ASSERT(!"Unhandled target");
- return false;
- }
+
+ default: break;
}
+
+ SLANG_ASSERT(!"Unhandled target");
+ return SLANG_FAIL;
}
//
diff --git a/source/slang/compiler.h b/source/slang/compiler.h
index 0eaf6e8e9..7be5b332d 100644
--- a/source/slang/compiler.h
+++ b/source/slang/compiler.h
@@ -500,7 +500,7 @@ namespace Slang
CodeGenTarget target);
/* Returns true if a codeGen target is available. */
- bool hasCodeGenTarget(Session* session, CodeGenTarget target);
+ SlangResult checkCompileTargetSupport(Session* session, CodeGenTarget target);
struct TypeCheckingCache;
//
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp
index ef71430fc..8fe08884e 100644
--- a/source/slang/slang.cpp
+++ b/source/slang/slang.cpp
@@ -1147,12 +1147,12 @@ SLANG_API ISlangSharedLibraryLoader* spSessionGetSharedLibraryLoader(
return (s->sharedLibraryLoader == Slang::DefaultSharedLibraryLoader::getSingleton()) ? nullptr : s->sharedLibraryLoader.get();
}
-SLANG_API SlangResult spSessionHasCompileTargetSupport(
+SLANG_API SlangResult spSessionCheckCompileTargetSupport(
SlangSession* session,
SlangCompileTarget target)
{
auto s = SESSION(session);
- return Slang::hasCodeGenTarget(s, Slang::CodeGenTarget(target)) ? SLANG_OK : SLANG_FAIL;
+ return Slang::checkCompileTargetSupport(s, Slang::CodeGenTarget(target));
}
SLANG_API SlangCompileRequest* spCreateCompileRequest(