diff options
| author | Darren Wihandi <65404740+fairywreath@users.noreply.github.com> | 2025-02-02 15:27:11 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-02 12:27:11 -0800 |
| commit | 0a6828572aa4cc1f0f99993e77c321799eb88cca (patch) | |
| tree | d18f1950074958ff3276e303425eed15067ea2bc /source/slang/slang-compiler.cpp | |
| parent | 2949b786a7f04ad31c113b622039fb5b72bc8622 (diff) | |
Add support for WGSL subgroup operations (#6213)
* initial work
* more work
* more work on glsl intrinsics
* add subgroup broadcast for glsl
* wip add wgsl extension tracking
* enable tests, enable extensions and added some todos
* format and warning fixes
* fix wgsl extension tracker
---------
Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'source/slang/slang-compiler.cpp')
| -rw-r--r-- | source/slang/slang-compiler.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/source/slang/slang-compiler.cpp b/source/slang/slang-compiler.cpp index 448534ce8..04ebb753c 100644 --- a/source/slang/slang-compiler.cpp +++ b/source/slang/slang-compiler.cpp @@ -28,7 +28,7 @@ // Artifact output #include "slang-artifact-output-util.h" #include "slang-emit-cuda.h" -#include "slang-glsl-extension-tracker.h" +#include "slang-extension-tracker.h" #include "slang-lower-to-ir.h" #include "slang-mangle.h" #include "slang-parameter-binding.h" @@ -658,7 +658,7 @@ static void _appendCodeWithPath( outCodeBuilder << fileContent << "\n"; } -void trackGLSLTargetCaps(GLSLExtensionTracker* extensionTracker, CapabilitySet const& caps) +void trackGLSLTargetCaps(ShaderExtensionTracker* extensionTracker, CapabilitySet const& caps) { for (auto& conjunctions : caps.getAtomSets()) { @@ -1037,8 +1037,11 @@ static RefPtr<ExtensionTracker> _newExtensionTracker(CodeGenTarget target) } case CodeGenTarget::SPIRV: case CodeGenTarget::GLSL: + case CodeGenTarget::WGSL: + case CodeGenTarget::WGSLSPIRV: + case CodeGenTarget::WGSLSPIRVAssembly: { - return new GLSLExtensionTracker; + return new ShaderExtensionTracker; } default: return nullptr; @@ -1261,7 +1264,7 @@ SlangResult CodeGenContext::emitWithDownstreamForEntryPoints(ComPtr<IArtifact>& if (auto endToEndReq = isPassThroughEnabled()) { // If we are pass through, we may need to set extension tracker state. - if (GLSLExtensionTracker* glslTracker = as<GLSLExtensionTracker>(extensionTracker)) + if (ShaderExtensionTracker* glslTracker = as<ShaderExtensionTracker>(extensionTracker)) { trackGLSLTargetCaps(glslTracker, getTargetCaps()); } @@ -1400,7 +1403,7 @@ SlangResult CodeGenContext::emitWithDownstreamForEntryPoints(ComPtr<IArtifact>& options.flags |= CompileOptions::Flag::EnableFloat16; } } - else if (GLSLExtensionTracker* glslTracker = as<GLSLExtensionTracker>(extensionTracker)) + else if (ShaderExtensionTracker* glslTracker = as<ShaderExtensionTracker>(extensionTracker)) { DownstreamCompileOptions::CapabilityVersion version; version.kind = DownstreamCompileOptions::CapabilityVersion::Kind::SPIRV; |
