summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-capabilities.capdef5
-rw-r--r--source/slang/slang-emit-hlsl.cpp6
2 files changed, 11 insertions, 0 deletions
diff --git a/source/slang/slang-capabilities.capdef b/source/slang/slang-capabilities.capdef
index 8f6aa254c..b50519a72 100644
--- a/source/slang/slang-capabilities.capdef
+++ b/source/slang/slang-capabilities.capdef
@@ -219,6 +219,11 @@ def _sm_6_9 : _sm_6_8;
/// [Version]
def hlsl_nvapi : hlsl;
+
+/// Represet HLSL compatibility support.
+/// [Version]
+def hlsl_2018 : _sm_5_1;
+
/// Represents capabilities required for DXIL Library compilation.
/// [Version]
alias dxil_lib = _sm_6_3;
diff --git a/source/slang/slang-emit-hlsl.cpp b/source/slang/slang-emit-hlsl.cpp
index 2d963866d..3813cf9cb 100644
--- a/source/slang/slang-emit-hlsl.cpp
+++ b/source/slang/slang-emit-hlsl.cpp
@@ -826,6 +826,9 @@ bool HLSLSourceEmitter::tryEmitInstExprImpl(IRInst* inst, const EmitOpInfo& inOu
auto targetProfile = getTargetProgram()->getOptionSet().getProfile();
if (targetProfile.getVersion() < ProfileVersion::DX_6_0)
return false;
+ auto targetCaps = getTargetReq()->getTargetCaps();
+ if (targetCaps.implies(CapabilityAtom::hlsl_2018))
+ return false;
if (as<IRBasicType>(inst->getDataType()))
return false;
@@ -851,6 +854,9 @@ bool HLSLSourceEmitter::tryEmitInstExprImpl(IRInst* inst, const EmitOpInfo& inOu
auto targetProfile = getTargetProgram()->getOptionSet().getProfile();
if (targetProfile.getVersion() < ProfileVersion::DX_6_0)
return false;
+ auto targetCaps = getTargetReq()->getTargetCaps();
+ if (targetCaps.implies(CapabilityAtom::hlsl_2018))
+ return false;
if (as<IRBasicType>(inst->getDataType()))
return false;