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