From cd6b2382d0803cb97c84104821a8e51ede116a5f Mon Sep 17 00:00:00 2001 From: Greg Fischer Date: Tue, 15 Jun 2021 15:56:27 -0600 Subject: [PATCH] Remove output variables from compute regression tests Output variables in GLCompute shaders is not supported in Vulkan. Recent upgrade of spirv-tools revealed this problem. --- .../hlsl.attribute.expression.comp.out | 123 +++---- .../hlsl.intrinsics.barriers.comp.out | 67 ++-- .../hlsl.intrinsics.negative.comp.out | 342 +++++++----------- Test/hlsl.attribute.expression.comp | 4 +- Test/hlsl.intrinsics.barriers.comp | 4 +- Test/hlsl.intrinsics.negative.comp | 20 +- 6 files changed, 212 insertions(+), 348 deletions(-) diff --git a/Test/baseResults/hlsl.attribute.expression.comp.out b/Test/baseResults/hlsl.attribute.expression.comp.out index 27775a685..90c17402f 100644 --- a/Test/baseResults/hlsl.attribute.expression.comp.out +++ b/Test/baseResults/hlsl.attribute.expression.comp.out @@ -2,7 +2,7 @@ hlsl.attribute.expression.comp Shader version: 500 local_size = (4, 6, 8) 0:? Sequence -0:9 Function Definition: @main( ( temp 4-component vector of float) +0:9 Function Definition: @main( ( temp void) 0:9 Function Parameters: 0:? Sequence 0:11 Sequence @@ -22,21 +22,12 @@ local_size = (4, 6, 8) 0:11 Loop Terminal Expression 0:11 Pre-Increment ( temp int) 0:11 'x' ( temp int) -0:14 Branch: Return with expression -0:14 Constant: -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 0:9 Function Definition: main( ( temp void) 0:9 Function Parameters: 0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:9 Function Call: @main( ( temp 4-component vector of float) +0:9 Function Call: @main( ( temp void) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked compute stage: @@ -45,7 +36,7 @@ Linked compute stage: Shader version: 500 local_size = (4, 6, 8) 0:? Sequence -0:9 Function Definition: @main( ( temp 4-component vector of float) +0:9 Function Definition: @main( ( temp void) 0:9 Function Parameters: 0:? Sequence 0:11 Sequence @@ -65,90 +56,70 @@ local_size = (4, 6, 8) 0:11 Loop Terminal Expression 0:11 Pre-Increment ( temp int) 0:11 'x' ( temp int) -0:14 Branch: Return with expression -0:14 Constant: -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 -0:14 0.000000 0:9 Function Definition: main( ( temp void) 0:9 Function Parameters: 0:? Sequence -0:9 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:9 Function Call: @main( ( temp 4-component vector of float) +0:9 Function Call: @main( ( temp void) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -Validation failed // Module Version 10000 // Generated by (magic number): 8000a -// Id's are bound by 39 +// Id's are bound by 30 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 37 + EntryPoint GLCompute 4 "main" ExecutionMode 4 LocalSize 4 6 8 Source HLSL 500 Name 4 "main" - Name 9 "@main(" - Name 13 "x" - Name 21 "$Global" - MemberName 21($Global) 0 "bound" - Name 23 "" - Name 37 "@entryPointOutput" - MemberDecorate 21($Global) 0 Offset 0 - Decorate 21($Global) Block - Decorate 23 DescriptorSet 0 - Decorate 23 Binding 0 - Decorate 37(@entryPointOutput) Location 0 + Name 6 "@main(" + Name 10 "x" + Name 18 "$Global" + MemberName 18($Global) 0 "bound" + Name 20 "" + MemberDecorate 18($Global) 0 Offset 0 + Decorate 18($Global) Block + Decorate 20 DescriptorSet 0 + Decorate 20 Binding 0 2: TypeVoid 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeFunction 7(fvec4) - 11: TypeInt 32 1 - 12: TypePointer Function 11(int) - 14: 11(int) Constant 0 - 21($Global): TypeStruct 11(int) - 22: TypePointer Uniform 21($Global) - 23: 22(ptr) Variable Uniform - 24: TypePointer Uniform 11(int) - 27: TypeBool - 30: 11(int) Constant 1 - 32: 6(float) Constant 0 - 33: 7(fvec4) ConstantComposite 32 32 32 32 - 36: TypePointer Output 7(fvec4) -37(@entryPointOutput): 36(ptr) Variable Output + 8: TypeInt 32 1 + 9: TypePointer Function 8(int) + 11: 8(int) Constant 0 + 18($Global): TypeStruct 8(int) + 19: TypePointer Uniform 18($Global) + 20: 19(ptr) Variable Uniform + 21: TypePointer Uniform 8(int) + 24: TypeBool + 27: 8(int) Constant 1 4(main): 2 Function None 3 5: Label - 38: 7(fvec4) FunctionCall 9(@main() - Store 37(@entryPointOutput) 38 + 29: 2 FunctionCall 6(@main() Return FunctionEnd - 9(@main(): 7(fvec4) Function None 8 - 10: Label - 13(x): 12(ptr) Variable Function - Store 13(x) 14 - Branch 15 - 15: Label - LoopMerge 17 18 Unroll - Branch 19 - 19: Label - 20: 11(int) Load 13(x) - 25: 24(ptr) AccessChain 23 14 - 26: 11(int) Load 25 - 28: 27(bool) SLessThan 20 26 - BranchConditional 28 16 17 - 16: Label - Branch 18 - 18: Label - 29: 11(int) Load 13(x) - 31: 11(int) IAdd 29 30 - Store 13(x) 31 + 6(@main(): 2 Function None 3 + 7: Label + 10(x): 9(ptr) Variable Function + Store 10(x) 11 + Branch 12 + 12: Label + LoopMerge 14 15 Unroll + Branch 16 + 16: Label + 17: 8(int) Load 10(x) + 22: 21(ptr) AccessChain 20 11 + 23: 8(int) Load 22 + 25: 24(bool) SLessThan 17 23 + BranchConditional 25 13 14 + 13: Label Branch 15 - 17: Label - ReturnValue 33 + 15: Label + 26: 8(int) Load 10(x) + 28: 8(int) IAdd 26 27 + Store 10(x) 28 + Branch 12 + 14: Label + Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 1ae95bca5..abb9650f6 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.barriers.comp Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:3 Function Definition: @ComputeShaderFunction( ( temp float) +0:3 Function Definition: @ComputeShaderFunction( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier ( temp void) @@ -11,17 +11,11 @@ local_size = (1, 1, 1) 0:7 DeviceMemoryBarrierWithGroupSync ( temp void) 0:8 WorkgroupMemoryBarrier ( temp void) 0:9 WorkgroupMemoryBarrierWithGroupSync ( temp void) -0:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 0:3 Function Definition: ComputeShaderFunction( ( temp void) 0:3 Function Parameters: 0:? Sequence -0:3 move second child to first child ( temp float) -0:? '@entryPointOutput' (layout( location=0) out float) -0:3 Function Call: @ComputeShaderFunction( ( temp float) +0:3 Function Call: @ComputeShaderFunction( ( temp void) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out float) Linked compute stage: @@ -30,7 +24,7 @@ Linked compute stage: Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:3 Function Definition: @ComputeShaderFunction( ( temp float) +0:3 Function Definition: @ComputeShaderFunction( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier ( temp void) @@ -39,59 +33,44 @@ local_size = (1, 1, 1) 0:7 DeviceMemoryBarrierWithGroupSync ( temp void) 0:8 WorkgroupMemoryBarrier ( temp void) 0:9 WorkgroupMemoryBarrierWithGroupSync ( temp void) -0:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 0:3 Function Definition: ComputeShaderFunction( ( temp void) 0:3 Function Parameters: 0:? Sequence -0:3 move second child to first child ( temp float) -0:? '@entryPointOutput' (layout( location=0) out float) -0:3 Function Call: @ComputeShaderFunction( ( temp float) +0:3 Function Call: @ComputeShaderFunction( ( temp void) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out float) -Validation failed // Module Version 10000 // Generated by (magic number): 8000a -// Id's are bound by 22 +// Id's are bound by 15 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" 20 + EntryPoint GLCompute 4 "ComputeShaderFunction" ExecutionMode 4 LocalSize 1 1 1 Source HLSL 500 Name 4 "ComputeShaderFunction" - Name 8 "@ComputeShaderFunction(" - Name 20 "@entryPointOutput" - Decorate 20(@entryPointOutput) Location 0 + Name 6 "@ComputeShaderFunction(" 2: TypeVoid 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeFunction 6(float) - 10: TypeInt 32 0 - 11: 10(int) Constant 1 - 12: 10(int) Constant 3400 - 13: 10(int) Constant 2 - 14: 10(int) Constant 2120 - 15: 10(int) Constant 264 - 16: 6(float) Constant 0 - 19: TypePointer Output 6(float) -20(@entryPointOutput): 19(ptr) Variable Output + 8: TypeInt 32 0 + 9: 8(int) Constant 1 + 10: 8(int) Constant 3400 + 11: 8(int) Constant 2 + 12: 8(int) Constant 2120 + 13: 8(int) Constant 264 4(ComputeShaderFunction): 2 Function None 3 5: Label - 21: 6(float) FunctionCall 8(@ComputeShaderFunction() - Store 20(@entryPointOutput) 21 + 14: 2 FunctionCall 6(@ComputeShaderFunction() Return FunctionEnd -8(@ComputeShaderFunction(): 6(float) Function None 7 - 9: Label - MemoryBarrier 11 12 - ControlBarrier 13 11 12 - MemoryBarrier 11 14 - ControlBarrier 13 11 14 - MemoryBarrier 13 15 - ControlBarrier 13 13 15 - ReturnValue 16 +6(@ComputeShaderFunction(): 2 Function None 3 + 7: Label + MemoryBarrier 9 10 + ControlBarrier 11 9 10 + MemoryBarrier 9 12 + ControlBarrier 11 9 12 + MemoryBarrier 11 13 + ControlBarrier 11 11 13 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index dfcaa2b99..c0a543c28 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -2,86 +2,57 @@ hlsl.intrinsics.negative.comp Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp void) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:2 'inF2' ( in float) 0:2 'inI0' ( in int) +0:55 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp void) +0:55 Function Parameters: +0:55 'inF0' ( in 1-component vector of float) +0:55 'inF1' ( in 1-component vector of float) +0:55 'inF2' ( in 1-component vector of float) +0:55 'inI0' ( in 1-component vector of int) +0:62 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp void) +0:62 Function Parameters: +0:62 'inF0' ( in 2-component vector of float) +0:62 'inF1' ( in 2-component vector of float) +0:62 'inF2' ( in 2-component vector of float) +0:62 'inI0' ( in 2-component vector of int) +0:107 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp void) +0:107 Function Parameters: +0:107 'inF0' ( in 3-component vector of float) +0:107 'inF1' ( in 3-component vector of float) +0:107 'inF2' ( in 3-component vector of float) +0:107 'inI0' ( in 3-component vector of int) +0:150 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp void) +0:150 Function Parameters: +0:150 'inF0' ( in 4-component vector of float) +0:150 'inF1' ( in 4-component vector of float) +0:150 'inF2' ( in 4-component vector of float) +0:150 'inI0' ( in 4-component vector of int) +0:150 Function Definition: ComputeShaderFunction( ( temp void) +0:150 Function Parameters: 0:? Sequence -0:53 Branch: Return with expression -0:53 Constant: -0:53 0.000000 -0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) -0:57 Function Parameters: -0:57 'inF0' ( in 1-component vector of float) -0:57 'inF1' ( in 1-component vector of float) -0:57 'inF2' ( in 1-component vector of float) -0:57 'inI0' ( in 1-component vector of int) -0:? Sequence -0:62 Branch: Return with expression -0:62 Constant: -0:62 0.000000 -0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) -0:66 Function Parameters: -0:66 'inF0' ( in 2-component vector of float) -0:66 'inF1' ( in 2-component vector of float) -0:66 'inF2' ( in 2-component vector of float) -0:66 'inI0' ( in 2-component vector of int) -0:? Sequence -0:109 Branch: Return with expression -0:109 Constant: -0:109 1.000000 -0:109 2.000000 -0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) -0:113 Function Parameters: -0:113 'inF0' ( in 3-component vector of float) -0:113 'inF1' ( in 3-component vector of float) -0:113 'inF2' ( in 3-component vector of float) -0:113 'inI0' ( in 3-component vector of int) -0:? Sequence -0:154 Branch: Return with expression -0:154 Constant: -0:154 1.000000 -0:154 2.000000 -0:154 3.000000 -0:158 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) -0:158 Function Parameters: -0:158 'inF0' ( in 4-component vector of float) -0:158 'inF1' ( in 4-component vector of float) -0:158 'inF2' ( in 4-component vector of float) -0:158 'inI0' ( in 4-component vector of int) -0:? Sequence -0:199 Branch: Return with expression -0:199 Constant: -0:199 1.000000 -0:199 2.000000 -0:199 3.000000 -0:199 4.000000 -0:158 Function Definition: ComputeShaderFunction( ( temp void) -0:158 Function Parameters: -0:? Sequence -0:158 move second child to first child ( temp 4-component vector of float) +0:150 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) -0:158 move second child to first child ( temp 4-component vector of float) +0:150 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) -0:158 move second child to first child ( temp 4-component vector of float) +0:150 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) -0:158 move second child to first child ( temp 4-component vector of int) +0:150 move second child to first child ( temp 4-component vector of int) 0:? 'inI0' ( temp 4-component vector of int) 0:? 'inI0' (layout( location=3) in 4-component vector of int) -0:158 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:158 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) -0:? 'inF0' ( temp 4-component vector of float) -0:? 'inF1' ( temp 4-component vector of float) -0:? 'inF2' ( temp 4-component vector of float) -0:? 'inI0' ( temp 4-component vector of int) +0:150 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp void) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inI0' ( temp 4-component vector of int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) @@ -94,100 +65,70 @@ Linked compute stage: Shader version: 500 local_size = (1, 1, 1) 0:? Sequence -0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp void) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:2 'inF2' ( in float) 0:2 'inI0' ( in int) +0:55 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp void) +0:55 Function Parameters: +0:55 'inF0' ( in 1-component vector of float) +0:55 'inF1' ( in 1-component vector of float) +0:55 'inF2' ( in 1-component vector of float) +0:55 'inI0' ( in 1-component vector of int) +0:62 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp void) +0:62 Function Parameters: +0:62 'inF0' ( in 2-component vector of float) +0:62 'inF1' ( in 2-component vector of float) +0:62 'inF2' ( in 2-component vector of float) +0:62 'inI0' ( in 2-component vector of int) +0:107 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp void) +0:107 Function Parameters: +0:107 'inF0' ( in 3-component vector of float) +0:107 'inF1' ( in 3-component vector of float) +0:107 'inF2' ( in 3-component vector of float) +0:107 'inI0' ( in 3-component vector of int) +0:150 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp void) +0:150 Function Parameters: +0:150 'inF0' ( in 4-component vector of float) +0:150 'inF1' ( in 4-component vector of float) +0:150 'inF2' ( in 4-component vector of float) +0:150 'inI0' ( in 4-component vector of int) +0:150 Function Definition: ComputeShaderFunction( ( temp void) +0:150 Function Parameters: 0:? Sequence -0:53 Branch: Return with expression -0:53 Constant: -0:53 0.000000 -0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) -0:57 Function Parameters: -0:57 'inF0' ( in 1-component vector of float) -0:57 'inF1' ( in 1-component vector of float) -0:57 'inF2' ( in 1-component vector of float) -0:57 'inI0' ( in 1-component vector of int) -0:? Sequence -0:62 Branch: Return with expression -0:62 Constant: -0:62 0.000000 -0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) -0:66 Function Parameters: -0:66 'inF0' ( in 2-component vector of float) -0:66 'inF1' ( in 2-component vector of float) -0:66 'inF2' ( in 2-component vector of float) -0:66 'inI0' ( in 2-component vector of int) -0:? Sequence -0:109 Branch: Return with expression -0:109 Constant: -0:109 1.000000 -0:109 2.000000 -0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) -0:113 Function Parameters: -0:113 'inF0' ( in 3-component vector of float) -0:113 'inF1' ( in 3-component vector of float) -0:113 'inF2' ( in 3-component vector of float) -0:113 'inI0' ( in 3-component vector of int) -0:? Sequence -0:154 Branch: Return with expression -0:154 Constant: -0:154 1.000000 -0:154 2.000000 -0:154 3.000000 -0:158 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) -0:158 Function Parameters: -0:158 'inF0' ( in 4-component vector of float) -0:158 'inF1' ( in 4-component vector of float) -0:158 'inF2' ( in 4-component vector of float) -0:158 'inI0' ( in 4-component vector of int) -0:? Sequence -0:199 Branch: Return with expression -0:199 Constant: -0:199 1.000000 -0:199 2.000000 -0:199 3.000000 -0:199 4.000000 -0:158 Function Definition: ComputeShaderFunction( ( temp void) -0:158 Function Parameters: -0:? Sequence -0:158 move second child to first child ( temp 4-component vector of float) +0:150 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) -0:158 move second child to first child ( temp 4-component vector of float) +0:150 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) -0:158 move second child to first child ( temp 4-component vector of float) +0:150 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) -0:158 move second child to first child ( temp 4-component vector of int) +0:150 move second child to first child ( temp 4-component vector of int) 0:? 'inI0' ( temp 4-component vector of int) 0:? 'inI0' (layout( location=3) in 4-component vector of int) -0:158 move second child to first child ( temp 4-component vector of float) -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) -0:158 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) -0:? 'inF0' ( temp 4-component vector of float) -0:? 'inF1' ( temp 4-component vector of float) -0:? 'inF2' ( temp 4-component vector of float) -0:? 'inI0' ( temp 4-component vector of int) +0:150 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp void) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inI0' ( temp 4-component vector of int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:? 'inI0' (layout( location=3) in 4-component vector of int) -Validation failed // Module Version 10000 // Generated by (magic number): 8000a -// Id's are bound by 99 +// Id's are bound by 79 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" 76 79 82 86 89 + EntryPoint GLCompute 4 "ComputeShaderFunction" 58 61 64 68 ExecutionMode 4 LocalSize 1 1 1 Source HLSL 500 Name 4 "ComputeShaderFunction" @@ -216,129 +157,116 @@ Validation failed Name 51 "inF1" Name 52 "inF2" Name 53 "inI0" - Name 74 "inF0" - Name 76 "inF0" - Name 78 "inF1" - Name 79 "inF1" - Name 81 "inF2" - Name 82 "inF2" - Name 84 "inI0" - Name 86 "inI0" - Name 89 "@entryPointOutput" - Name 90 "param" - Name 92 "param" - Name 94 "param" - Name 96 "param" - Decorate 76(inF0) Location 0 - Decorate 79(inF1) Location 1 - Decorate 82(inF2) Location 2 - Decorate 86(inI0) Location 3 - Decorate 89(@entryPointOutput) Location 0 + Name 56 "inF0" + Name 58 "inF0" + Name 60 "inF1" + Name 61 "inF1" + Name 63 "inF2" + Name 64 "inF2" + Name 66 "inI0" + Name 68 "inI0" + Name 70 "param" + Name 72 "param" + Name 74 "param" + Name 76 "param" + Decorate 58(inF0) Location 0 + Decorate 61(inF1) Location 1 + Decorate 64(inF2) Location 2 + Decorate 68(inI0) Location 3 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeInt 32 1 9: TypePointer Function 8(int) - 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) + 10: TypeFunction 2 7(ptr) 7(ptr) 7(ptr) 9(ptr) 23: TypeVector 6(float) 2 24: TypePointer Function 23(fvec2) 25: TypeVector 8(int) 2 26: TypePointer Function 25(ivec2) - 27: TypeFunction 23(fvec2) 24(ptr) 24(ptr) 24(ptr) 26(ptr) + 27: TypeFunction 2 24(ptr) 24(ptr) 24(ptr) 26(ptr) 34: TypeVector 6(float) 3 35: TypePointer Function 34(fvec3) 36: TypeVector 8(int) 3 37: TypePointer Function 36(ivec3) - 38: TypeFunction 34(fvec3) 35(ptr) 35(ptr) 35(ptr) 37(ptr) + 38: TypeFunction 2 35(ptr) 35(ptr) 35(ptr) 37(ptr) 45: TypeVector 6(float) 4 46: TypePointer Function 45(fvec4) 47: TypeVector 8(int) 4 48: TypePointer Function 47(ivec4) - 49: TypeFunction 45(fvec4) 46(ptr) 46(ptr) 46(ptr) 48(ptr) - 56: 6(float) Constant 0 - 61: 6(float) Constant 1065353216 - 62: 6(float) Constant 1073741824 - 63: 23(fvec2) ConstantComposite 61 62 - 66: 6(float) Constant 1077936128 - 67: 34(fvec3) ConstantComposite 61 62 66 - 70: 6(float) Constant 1082130432 - 71: 45(fvec4) ConstantComposite 61 62 66 70 - 75: TypePointer Input 45(fvec4) - 76(inF0): 75(ptr) Variable Input - 79(inF1): 75(ptr) Variable Input - 82(inF2): 75(ptr) Variable Input - 85: TypePointer Input 47(ivec4) - 86(inI0): 85(ptr) Variable Input - 88: TypePointer Output 45(fvec4) -89(@entryPointOutput): 88(ptr) Variable Output + 49: TypeFunction 2 46(ptr) 46(ptr) 46(ptr) 48(ptr) + 57: TypePointer Input 45(fvec4) + 58(inF0): 57(ptr) Variable Input + 61(inF1): 57(ptr) Variable Input + 64(inF2): 57(ptr) Variable Input + 67: TypePointer Input 47(ivec4) + 68(inI0): 67(ptr) Variable Input 4(ComputeShaderFunction): 2 Function None 3 5: Label - 74(inF0): 46(ptr) Variable Function - 78(inF1): 46(ptr) Variable Function - 81(inF2): 46(ptr) Variable Function - 84(inI0): 48(ptr) Variable Function - 90(param): 46(ptr) Variable Function - 92(param): 46(ptr) Variable Function - 94(param): 46(ptr) Variable Function - 96(param): 48(ptr) Variable Function - 77: 45(fvec4) Load 76(inF0) - Store 74(inF0) 77 - 80: 45(fvec4) Load 79(inF1) - Store 78(inF1) 80 - 83: 45(fvec4) Load 82(inF2) - Store 81(inF2) 83 - 87: 47(ivec4) Load 86(inI0) - Store 84(inI0) 87 - 91: 45(fvec4) Load 74(inF0) - Store 90(param) 91 - 93: 45(fvec4) Load 78(inF1) - Store 92(param) 93 - 95: 45(fvec4) Load 81(inF2) - Store 94(param) 95 - 97: 47(ivec4) Load 84(inI0) - Store 96(param) 97 - 98: 45(fvec4) FunctionCall 54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;) 90(param) 92(param) 94(param) 96(param) - Store 89(@entryPointOutput) 98 + 56(inF0): 46(ptr) Variable Function + 60(inF1): 46(ptr) Variable Function + 63(inF2): 46(ptr) Variable Function + 66(inI0): 48(ptr) Variable Function + 70(param): 46(ptr) Variable Function + 72(param): 46(ptr) Variable Function + 74(param): 46(ptr) Variable Function + 76(param): 48(ptr) Variable Function + 59: 45(fvec4) Load 58(inF0) + Store 56(inF0) 59 + 62: 45(fvec4) Load 61(inF1) + Store 60(inF1) 62 + 65: 45(fvec4) Load 64(inF2) + Store 63(inF2) 65 + 69: 47(ivec4) Load 68(inI0) + Store 66(inI0) 69 + 71: 45(fvec4) Load 56(inF0) + Store 70(param) 71 + 73: 45(fvec4) Load 60(inF1) + Store 72(param) 73 + 75: 45(fvec4) Load 63(inF2) + Store 74(param) 75 + 77: 47(ivec4) Load 66(inI0) + Store 76(param) 77 + 78: 2 FunctionCall 54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;) 70(param) 72(param) 74(param) 76(param) Return FunctionEnd -15(ComputeShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 +15(ComputeShaderFunctionS(f1;f1;f1;i1;): 2 Function None 10 11(inF0): 7(ptr) FunctionParameter 12(inF1): 7(ptr) FunctionParameter 13(inF2): 7(ptr) FunctionParameter 14(inI0): 9(ptr) FunctionParameter 16: Label - ReturnValue 56 + Return FunctionEnd -21(ComputeShaderFunction1(vf1;vf1;vf1;vi1;): 6(float) Function None 10 +21(ComputeShaderFunction1(vf1;vf1;vf1;vi1;): 2 Function None 10 17(inF0): 7(ptr) FunctionParameter 18(inF1): 7(ptr) FunctionParameter 19(inF2): 7(ptr) FunctionParameter 20(inI0): 9(ptr) FunctionParameter 22: Label - ReturnValue 56 + Return FunctionEnd -32(ComputeShaderFunction2(vf2;vf2;vf2;vi2;): 23(fvec2) Function None 27 +32(ComputeShaderFunction2(vf2;vf2;vf2;vi2;): 2 Function None 27 28(inF0): 24(ptr) FunctionParameter 29(inF1): 24(ptr) FunctionParameter 30(inF2): 24(ptr) FunctionParameter 31(inI0): 26(ptr) FunctionParameter 33: Label - ReturnValue 63 + Return FunctionEnd -43(ComputeShaderFunction3(vf3;vf3;vf3;vi3;): 34(fvec3) Function None 38 +43(ComputeShaderFunction3(vf3;vf3;vf3;vi3;): 2 Function None 38 39(inF0): 35(ptr) FunctionParameter 40(inF1): 35(ptr) FunctionParameter 41(inF2): 35(ptr) FunctionParameter 42(inI0): 37(ptr) FunctionParameter 44: Label - ReturnValue 67 + Return FunctionEnd -54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;): 45(fvec4) Function None 49 +54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;): 2 Function None 49 50(inF0): 46(ptr) FunctionParameter 51(inF1): 46(ptr) FunctionParameter 52(inF2): 46(ptr) FunctionParameter 53(inI0): 48(ptr) FunctionParameter 55: Label - ReturnValue 71 + Return FunctionEnd diff --git a/Test/hlsl.attribute.expression.comp b/Test/hlsl.attribute.expression.comp index 535fbad42..23489fa75 100644 --- a/Test/hlsl.attribute.expression.comp +++ b/Test/hlsl.attribute.expression.comp @@ -5,11 +5,9 @@ uniform int bound; #define BAR 2 [numthreads(2+2, 2*3, (1+FOO)*BAR)] -float4 main() : SV_TARGET +void main() { [unroll(5*2 + 1) ] for (int x=0; x