diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out index 9101e22f8..b6557efa5 100755 --- a/Test/baseResults/hlsl.basic.comp.out +++ b/Test/baseResults/hlsl.basic.comp.out @@ -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 diff --git a/Test/baseResults/hlsl.numthreads.comp.out b/Test/baseResults/hlsl.numthreads.comp.out index 76e95c8f8..8ac76a962 100644 --- a/Test/baseResults/hlsl.numthreads.comp.out +++ b/Test/baseResults/hlsl.numthreads.comp.out @@ -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 diff --git a/Test/hlsl.basic.comp b/Test/hlsl.basic.comp index 8a65a5961..1d95239ed 100644 --- a/Test/hlsl.basic.comp +++ b/Test/hlsl.basic.comp @@ -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; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index f4c35bcbb..f99e69a32 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -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" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 893cbfcaf..5978ae38a 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -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")