mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 12:00:05 +00:00
HLSL: Fix issue #646: map SV_DispatchThreadID -> GlobalInvocationID.
This commit is contained in:
parent
aa6d56298d
commit
f37f4d23fc
@ -2,13 +2,17 @@ hlsl.basic.comp
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main(i1; (temp void)
|
||||
0:4 Function Definition: main(i1;i1; (temp void)
|
||||
0:4 Function Parameters:
|
||||
0:4 'dti' (in int LocalInvocationID)
|
||||
0:4 'dti' (in int GlobalInvocationID)
|
||||
0:4 'gti' (in int LocalInvocationID)
|
||||
0:? Sequence
|
||||
0:5 'dti' (in int LocalInvocationID)
|
||||
0:5 subtract (temp int)
|
||||
0:5 'dti' (in int GlobalInvocationID)
|
||||
0:5 'gti' (in int LocalInvocationID)
|
||||
0:? Linker Objects
|
||||
0:? 'dti' (in int LocalInvocationID)
|
||||
0:? 'dti' (in int GlobalInvocationID)
|
||||
0:? 'gti' (in int LocalInvocationID)
|
||||
0:? 'a' (shared 100-element array of 4-component vector of float)
|
||||
|
||||
|
||||
@ -18,41 +22,51 @@ Linked compute stage:
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:4 Function Definition: main(i1; (temp void)
|
||||
0:4 Function Definition: main(i1;i1; (temp void)
|
||||
0:4 Function Parameters:
|
||||
0:4 'dti' (in int LocalInvocationID)
|
||||
0:4 'dti' (in int GlobalInvocationID)
|
||||
0:4 'gti' (in int LocalInvocationID)
|
||||
0:? Sequence
|
||||
0:5 'dti' (in int LocalInvocationID)
|
||||
0:5 subtract (temp int)
|
||||
0:5 'dti' (in int GlobalInvocationID)
|
||||
0:5 'gti' (in int LocalInvocationID)
|
||||
0:? Linker Objects
|
||||
0:? 'dti' (in int LocalInvocationID)
|
||||
0:? 'dti' (in int GlobalInvocationID)
|
||||
0:? 'gti' (in int LocalInvocationID)
|
||||
0:? 'a' (shared 100-element array of 4-component vector of float)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 16
|
||||
// Id's are bound by 20
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main" 8
|
||||
EntryPoint GLCompute 4 "main" 8 10
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Name 4 "main"
|
||||
Name 8 "dti"
|
||||
Name 15 "a"
|
||||
Decorate 8(dti) BuiltIn LocalInvocationId
|
||||
Name 10 "gti"
|
||||
Name 19 "a"
|
||||
Decorate 8(dti) BuiltIn GlobalInvocationId
|
||||
Decorate 10(gti) BuiltIn LocalInvocationId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypePointer Input 6(int)
|
||||
8(dti): 7(ptr) Variable Input
|
||||
9: TypeFloat 32
|
||||
10: TypeVector 9(float) 4
|
||||
11: TypeInt 32 0
|
||||
12: 11(int) Constant 100
|
||||
13: TypeArray 10(fvec4) 12
|
||||
14: TypePointer Workgroup 13
|
||||
15(a): 14(ptr) Variable Workgroup
|
||||
10(gti): 7(ptr) Variable Input
|
||||
13: TypeFloat 32
|
||||
14: TypeVector 13(float) 4
|
||||
15: TypeInt 32 0
|
||||
16: 15(int) Constant 100
|
||||
17: TypeArray 14(fvec4) 16
|
||||
18: TypePointer Workgroup 17
|
||||
19(a): 18(ptr) Variable Workgroup
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9: 6(int) Load 8(dti)
|
||||
11: 6(int) Load 10(gti)
|
||||
12: 6(int) ISub 9 11
|
||||
Return
|
||||
FunctionEnd
|
||||
|
@ -7,9 +7,9 @@ local_size = (4, 4, 2)
|
||||
0:4 'tid' (in 3-component vector of uint)
|
||||
0:9 Function Definition: main_aux1(vu3; (temp void)
|
||||
0:9 Function Parameters:
|
||||
0:9 'tid' (in 3-component vector of uint LocalInvocationID)
|
||||
0:9 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
0:? Linker Objects
|
||||
0:? 'tid' (in 3-component vector of uint LocalInvocationID)
|
||||
0:? 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
@ -23,9 +23,9 @@ local_size = (4, 4, 2)
|
||||
0:4 'tid' (in 3-component vector of uint)
|
||||
0:9 Function Definition: main_aux1(vu3; (temp void)
|
||||
0:9 Function Parameters:
|
||||
0:9 'tid' (in 3-component vector of uint LocalInvocationID)
|
||||
0:9 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
0:? Linker Objects
|
||||
0:? 'tid' (in 3-component vector of uint LocalInvocationID)
|
||||
0:? 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
@ -40,7 +40,7 @@ local_size = (4, 4, 2)
|
||||
Name 11 "main(vu3;"
|
||||
Name 10 "tid"
|
||||
Name 14 "tid"
|
||||
Decorate 14(tid) BuiltIn LocalInvocationId
|
||||
Decorate 14(tid) BuiltIn GlobalInvocationId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
|
@ -1,6 +1,6 @@
|
||||
groupshared float4 a[100];
|
||||
|
||||
void main(int dti : SV_DispatchThreadID)
|
||||
void main(int dti : SV_DispatchThreadID, int gti : SV_GroupThreadID)
|
||||
{
|
||||
dti;
|
||||
dti - gti;
|
||||
}
|
||||
|
@ -2,5 +2,5 @@
|
||||
// For the version, it uses the latest git tag followed by the number of commits.
|
||||
// For the date, it uses the current date (when then script is run).
|
||||
|
||||
#define GLSLANG_REVISION "Overload400-PrecQual.1725"
|
||||
#define GLSLANG_DATE "30-Dec-2016"
|
||||
#define GLSLANG_REVISION "Overload400-PrecQual.1726"
|
||||
#define GLSLANG_DATE "02-Jan-2017"
|
||||
|
@ -3195,7 +3195,7 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con
|
||||
else if (semanticUpperCase == "SV_GSINSTANCEID")
|
||||
qualifier.builtIn = EbvInvocationId;
|
||||
else if (semanticUpperCase == "SV_DISPATCHTHREADID")
|
||||
qualifier.builtIn = EbvLocalInvocationId;
|
||||
qualifier.builtIn = EbvGlobalInvocationId;
|
||||
else if (semanticUpperCase == "SV_GROUPTHREADID")
|
||||
qualifier.builtIn = EbvLocalInvocationId;
|
||||
else if (semanticUpperCase == "SV_GROUPID")
|
||||
|
Loading…
Reference in New Issue
Block a user