summaryrefslogtreecommitdiff
path: root/source/slang/slang.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang.cpp')
-rw-r--r--source/slang/slang.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp
index ef92558cc..913be346e 100644
--- a/source/slang/slang.cpp
+++ b/source/slang/slang.cpp
@@ -1100,6 +1100,11 @@ void TargetRequest::addCapability(CapabilityAtom capability)
cookedCapabilities = CapabilitySet::makeEmpty();
}
+void TargetRequest::setDirectSPIRVEmitMode()
+{
+ m_emitSPIRVDirectly = true;
+ cookedCapabilities.makeEmpty();
+}
CapabilitySet TargetRequest::getTargetCaps()
{
@@ -1131,9 +1136,18 @@ CapabilitySet TargetRequest::getTargetCaps()
case CodeGenTarget::GLSL:
case CodeGenTarget::GLSL_Vulkan:
case CodeGenTarget::GLSL_Vulkan_OneDesc:
+ atoms.add(CapabilityAtom::GLSL);
+ break;
case CodeGenTarget::SPIRV:
case CodeGenTarget::SPIRVAssembly:
- atoms.add(CapabilityAtom::GLSL);
+ if (m_emitSPIRVDirectly)
+ {
+ atoms.add(CapabilityAtom::SPIRV_DIRECT);
+ }
+ else
+ {
+ atoms.add(CapabilityAtom::GLSL);
+ }
break;
case CodeGenTarget::HLSL: