summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-compiler.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-04-19 21:02:32 -0700
committerGitHub <noreply@github.com>2024-04-19 21:02:32 -0700
commitbeae3a9d219dac1e4e3da9c357b25d06370388f3 (patch)
treeca4eb2a8e9ca67a130e3894c517114709576af75 /source/slang/slang-compiler.cpp
parentf9bcad35562c1f08638e6d3eb397d370d7d2f8f8 (diff)
Add metal downstream compiler + metallib target. (#3990)
* Add metal downstream compiler + metallib target. * Add more comments. * Add missing override.
Diffstat (limited to 'source/slang/slang-compiler.cpp')
-rw-r--r--source/slang/slang-compiler.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/source/slang/slang-compiler.cpp b/source/slang/slang-compiler.cpp
index 04536c81a..851e3115b 100644
--- a/source/slang/slang-compiler.cpp
+++ b/source/slang/slang-compiler.cpp
@@ -530,6 +530,11 @@ namespace Slang
{
return PassThroughMode::Glslang;
}
+ case CodeGenTarget::MetalLib:
+ case CodeGenTarget::MetalLibAssembly:
+ {
+ return PassThroughMode::MetalC;
+ }
case CodeGenTarget::ShaderHostCallable:
case CodeGenTarget::ShaderSharedLibrary:
case CodeGenTarget::HostExecutable:
@@ -957,6 +962,7 @@ namespace Slang
case CodeGenTarget::DXBytecode: return CodeGenTarget::HLSL;
case CodeGenTarget::DXIL: return CodeGenTarget::HLSL;
case CodeGenTarget::SPIRV: return CodeGenTarget::GLSL;
+ case CodeGenTarget::MetalLib: return CodeGenTarget::Metal;
default: break;
}
return CodeGenTarget::Unknown;
@@ -1546,6 +1552,7 @@ namespace Slang
case CodeGenTarget::SPIRVAssembly:
case CodeGenTarget::DXBytecodeAssembly:
case CodeGenTarget::DXILAssembly:
+ case CodeGenTarget::MetalLibAssembly:
{
// First compile to an intermediate target for the corresponding binary format.
const CodeGenTarget intermediateTarget = _getIntermediateTarget(target);
@@ -1573,6 +1580,7 @@ namespace Slang
[[fallthrough]];
case CodeGenTarget::DXIL:
case CodeGenTarget::DXBytecode:
+ case CodeGenTarget::MetalLib:
case CodeGenTarget::PTX:
case CodeGenTarget::ShaderHostCallable:
case CodeGenTarget::ShaderSharedLibrary:
@@ -1602,6 +1610,8 @@ namespace Slang
case CodeGenTarget::SPIRV:
case CodeGenTarget::DXIL:
case CodeGenTarget::DXBytecode:
+ case CodeGenTarget::MetalLib:
+ case CodeGenTarget::MetalLibAssembly:
case CodeGenTarget::PTX:
case CodeGenTarget::HostHostCallable:
case CodeGenTarget::ShaderHostCallable: