From 2eb8a07b6a4cd744087e8dbebd213cbf5e010029 Mon Sep 17 00:00:00 2001 From: jacob Date: Tue, 3 Mar 2026 04:56:56 -0600 Subject: [PATCH] add SV_GroupIndex arg to compute shaders --- src/base/base.cgh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/base/base.cgh b/src/base/base.cgh index 13a50b65..90309393 100644 --- a/src/base/base.cgh +++ b/src/base/base.cgh @@ -742,14 +742,14 @@ Inline b32 MatchU128(u128 a, u128 b) { return a.lo == b.lo && a.hi == b.hi; } Struct(ComputeShader) { ResourceKey resource; }; #elif IsGpu #define Semantic(type, name) type name : name - #define DeclComputeShader(name, x) [numthreads(x, 1, 1)] void name(Semantic(u32, SV_DispatchThreadID)) - #define DeclComputeShader2D(name, x, y) [numthreads(x, y, 1)] void name(Semantic(Vec2U32, SV_DispatchThreadID)) - #define DeclComputeShader3D(name, x, y, z) [numthreads(x, y, z)] void name(Semantic(Vec3U32, SV_DispatchThreadID)) + #define DeclComputeShader(name, x) [numthreads(x, 1, 1)] void name(Semantic(u32, SV_DispatchThreadID), Semantic(u32, SV_GroupIndex)) + #define DeclComputeShader2D(name, x, y) [numthreads(x, y, 1)] void name(Semantic(Vec2U32, SV_DispatchThreadID), Semantic(u32, SV_GroupIndex)) + #define DeclComputeShader3D(name, x, y, z) [numthreads(x, y, z)] void name(Semantic(Vec3U32, SV_DispatchThreadID), Semantic(u32, SV_GroupIndex)) #define DeclVertexShader(name, return_type) return_type name(Semantic(u32, SV_InstanceID), Semantic(u32, SV_VertexID)) #define DeclPixelShader(name, return_type, ...) return_type name(__VA_ARGS__) - #define ImplComputeShader(name) void name(Semantic(u32, SV_DispatchThreadID)) - #define ImplComputeShader2D(name) void name(Semantic(Vec2U32, SV_DispatchThreadID)) - #define ImplComputeShader3D(name) void name(Semantic(Vec3U32, SV_DispatchThreadID)) + #define ImplComputeShader(name) void name(Semantic(u32, SV_DispatchThreadID), Semantic(u32, SV_GroupIndex)) + #define ImplComputeShader2D(name) void name(Semantic(Vec2U32, SV_DispatchThreadID), Semantic(u32, SV_GroupIndex)) + #define ImplComputeShader3D(name) void name(Semantic(Vec3U32, SV_DispatchThreadID), Semantic(u32, SV_GroupIndex)) #define ImplVertexShader(name, return_type) return_type name(Semantic(u32, SV_InstanceID), Semantic(u32, SV_VertexID)) #define ImplPixelShader(name, return_type, ...) return_type name(__VA_ARGS__) #endif