HLSL: Fix #1332: consistently use uint for counter buf typing.
This commit is contained in:
		
							parent
							
								
									1dcd162399
								
							
						
					
					
						commit
						6ae18707f9
					
				| @ -1,7 +1,7 @@ | ||||
| hlsl.noSemantic.functionality1.comp | ||||
| // Module Version 10000 | ||||
| // Generated by (magic number): 80006 | ||||
| // Id's are bound by 31 | ||||
| // Id's are bound by 30 | ||||
| 
 | ||||
|                               Capability Shader | ||||
|                               Extension  "SPV_GOOGLE_hlsl_functionality1" | ||||
| @ -15,18 +15,18 @@ hlsl.noSemantic.functionality1.comp | ||||
|                               Name 11  "Buf" | ||||
|                               MemberName 11(Buf) 0  "@data" | ||||
|                               Name 13  "Buf" | ||||
|                               Name 16  "Buf@count" | ||||
|                               MemberName 16(Buf@count) 0  "@count" | ||||
|                               Name 18  "Buf@count" | ||||
|                               Name 17  "Buf@count" | ||||
|                               MemberName 17(Buf@count) 0  "@count" | ||||
|                               Name 19  "Buf@count" | ||||
|                               Decorate 10 ArrayStride 16 | ||||
|                               MemberDecorate 11(Buf) 0 Offset 0 | ||||
|                               Decorate 11(Buf) BufferBlock | ||||
|                               Decorate 13(Buf) DescriptorSet 0 | ||||
|                               Decorate 13(Buf) Binding 0 | ||||
|                               MemberDecorate 16(Buf@count) 0 Offset 0 | ||||
|                               Decorate 16(Buf@count) BufferBlock | ||||
|                               Decorate 18(Buf@count) DescriptorSet 0 | ||||
|                               DecorateId 13(Buf) DecorationHlslCounterBufferGOOGLE 18(Buf@count) | ||||
|                               MemberDecorate 17(Buf@count) 0 Offset 0 | ||||
|                               Decorate 17(Buf@count) BufferBlock | ||||
|                               Decorate 19(Buf@count) DescriptorSet 0 | ||||
|                               DecorateId 13(Buf) DecorationHlslCounterBufferGOOGLE 19(Buf@count) | ||||
|                2:             TypeVoid | ||||
|                3:             TypeFunction 2 | ||||
|                8:             TypeFloat 32 | ||||
| @ -37,27 +37,26 @@ hlsl.noSemantic.functionality1.comp | ||||
|          13(Buf):     12(ptr) Variable Uniform | ||||
|               14:             TypeInt 32 1 | ||||
|               15:     14(int) Constant 0 | ||||
|    16(Buf@count):             TypeStruct 14(int) | ||||
|               17:             TypePointer Uniform 16(Buf@count) | ||||
|    18(Buf@count):     17(ptr) Variable Uniform | ||||
|               19:             TypePointer Uniform 14(int) | ||||
|               21:     14(int) Constant 1 | ||||
|               22:             TypeInt 32 0 | ||||
|               23:     22(int) Constant 1 | ||||
|               24:     22(int) Constant 0 | ||||
|               26:    8(float) Constant 1065353216 | ||||
|               27:    9(fvec4) ConstantComposite 26 26 26 26 | ||||
|               28:             TypePointer Uniform 9(fvec4) | ||||
|               16:             TypeInt 32 0 | ||||
|    17(Buf@count):             TypeStruct 16(int) | ||||
|               18:             TypePointer Uniform 17(Buf@count) | ||||
|    19(Buf@count):     18(ptr) Variable Uniform | ||||
|               20:             TypePointer Uniform 16(int) | ||||
|               22:     16(int) Constant 1 | ||||
|               23:     16(int) Constant 0 | ||||
|               25:    8(float) Constant 1065353216 | ||||
|               26:    9(fvec4) ConstantComposite 25 25 25 25 | ||||
|               27:             TypePointer Uniform 9(fvec4) | ||||
|          4(main):           2 Function None 3 | ||||
|                5:             Label | ||||
|               30:           2 FunctionCall 6(@main() | ||||
|               29:           2 FunctionCall 6(@main() | ||||
|                               Return | ||||
|                               FunctionEnd | ||||
|        6(@main():           2 Function None 3 | ||||
|                7:             Label | ||||
|               20:     19(ptr) AccessChain 18(Buf@count) 15 | ||||
|               25:     22(int) AtomicIAdd 20 23 24 21 | ||||
|               29:     28(ptr) AccessChain 13(Buf) 15 25 | ||||
|                               Store 29 27 | ||||
|               21:     20(ptr) AccessChain 19(Buf@count) 15 | ||||
|               24:     16(int) AtomicIAdd 21 22 23 22 | ||||
|               28:     27(ptr) AccessChain 13(Buf) 15 24 | ||||
|                               Store 28 26 | ||||
|                               Return | ||||
|                               FunctionEnd | ||||
|  | ||||
| @ -5,9 +5,9 @@ gl_FragCoord origin is upper left | ||||
| 0:8  Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) | ||||
| 0:8    Function Parameters:  | ||||
| 0:8      'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:8      'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:8      'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:8      'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:8      'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:8      'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     Sequence | ||||
| 0:9      move second child to first child ( temp 4-component vector of float) | ||||
| 0:9        indirect index ( buffer 4-component vector of float) | ||||
| @ -16,12 +16,12 @@ gl_FragCoord origin is upper left | ||||
| 0:9            Constant: | ||||
| 0:9              0 (const uint) | ||||
| 0:9          AtomicAdd ( temp uint) | ||||
| 0:9            @count: direct index for structure ( temp int) | ||||
| 0:9              'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:9            @count: direct index for structure ( temp uint) | ||||
| 0:9              'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:9              Constant: | ||||
| 0:9                0 (const int) | ||||
| 0:9            Constant: | ||||
| 0:9              1 (const int) | ||||
| 0:9              1 (const uint) | ||||
| 0:?         Constant: | ||||
| 0:?           1.000000 | ||||
| 0:?           2.000000 | ||||
| @ -35,12 +35,12 @@ gl_FragCoord origin is upper left | ||||
| 0:10              0 (const uint) | ||||
| 0:10          add ( temp uint) | ||||
| 0:10            AtomicAdd ( temp uint) | ||||
| 0:10              @count: direct index for structure ( temp int) | ||||
| 0:10                'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:10              @count: direct index for structure ( temp uint) | ||||
| 0:10                'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:10                Constant: | ||||
| 0:10                  0 (const int) | ||||
| 0:10              Constant: | ||||
| 0:10                -1 (const int) | ||||
| 0:10                4294967295 (const uint) | ||||
| 0:10            Constant: | ||||
| 0:10              -1 (const int) | ||||
| 0:19  Function Definition: @main(u1; ( temp 4-component vector of float) | ||||
| @ -50,9 +50,9 @@ gl_FragCoord origin is upper left | ||||
| 0:22      Branch: Return with expression | ||||
| 0:22        Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) | ||||
| 0:22          'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:22          'sbuf_a@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:22          'sbuf_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:22          'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:22          'sbuf_c@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:22          'sbuf_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:19  Function Definition: main( ( temp void) | ||||
| 0:19    Function Parameters:  | ||||
| 0:?     Sequence | ||||
| @ -65,9 +65,9 @@ gl_FragCoord origin is upper left | ||||
| 0:?           'pos' ( temp uint) | ||||
| 0:?   Linker Objects | ||||
| 0:?     'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float) | ||||
| 0:?     'pos' (layout( location=0) flat in uint) | ||||
| @ -82,9 +82,9 @@ gl_FragCoord origin is upper left | ||||
| 0:8  Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) | ||||
| 0:8    Function Parameters:  | ||||
| 0:8      'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:8      'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:8      'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:8      'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:8      'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:8      'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     Sequence | ||||
| 0:9      move second child to first child ( temp 4-component vector of float) | ||||
| 0:9        indirect index ( buffer 4-component vector of float) | ||||
| @ -93,12 +93,12 @@ gl_FragCoord origin is upper left | ||||
| 0:9            Constant: | ||||
| 0:9              0 (const uint) | ||||
| 0:9          AtomicAdd ( temp uint) | ||||
| 0:9            @count: direct index for structure ( temp int) | ||||
| 0:9              'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:9            @count: direct index for structure ( temp uint) | ||||
| 0:9              'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:9              Constant: | ||||
| 0:9                0 (const int) | ||||
| 0:9            Constant: | ||||
| 0:9              1 (const int) | ||||
| 0:9              1 (const uint) | ||||
| 0:?         Constant: | ||||
| 0:?           1.000000 | ||||
| 0:?           2.000000 | ||||
| @ -112,12 +112,12 @@ gl_FragCoord origin is upper left | ||||
| 0:10              0 (const uint) | ||||
| 0:10          add ( temp uint) | ||||
| 0:10            AtomicAdd ( temp uint) | ||||
| 0:10              @count: direct index for structure ( temp int) | ||||
| 0:10                'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:10              @count: direct index for structure ( temp uint) | ||||
| 0:10                'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:10                Constant: | ||||
| 0:10                  0 (const int) | ||||
| 0:10              Constant: | ||||
| 0:10                -1 (const int) | ||||
| 0:10                4294967295 (const uint) | ||||
| 0:10            Constant: | ||||
| 0:10              -1 (const int) | ||||
| 0:19  Function Definition: @main(u1; ( temp 4-component vector of float) | ||||
| @ -127,9 +127,9 @@ gl_FragCoord origin is upper left | ||||
| 0:22      Branch: Return with expression | ||||
| 0:22        Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) | ||||
| 0:22          'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:22          'sbuf_a@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:22          'sbuf_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:22          'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:22          'sbuf_c@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:22          'sbuf_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:19  Function Definition: main( ( temp void) | ||||
| 0:19    Function Parameters:  | ||||
| 0:?     Sequence | ||||
| @ -142,9 +142,9 @@ gl_FragCoord origin is upper left | ||||
| 0:?           'pos' ( temp uint) | ||||
| 0:?   Linker Objects | ||||
| 0:?     'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float) | ||||
| 0:?     'pos' (layout( location=0) flat in uint) | ||||
| @ -169,8 +169,8 @@ gl_FragCoord origin is upper left | ||||
|                               Name 16  "arg_a@count" | ||||
|                               Name 17  "arg_c" | ||||
|                               Name 18  "arg_c@count" | ||||
|                               Name 25  "@main(u1;" | ||||
|                               Name 24  "pos" | ||||
|                               Name 24  "@main(u1;" | ||||
|                               Name 23  "pos" | ||||
|                               Name 49  "sbuf_a" | ||||
|                               Name 50  "sbuf_a@count" | ||||
|                               Name 51  "sbuf_c" | ||||
| @ -207,30 +207,30 @@ gl_FragCoord origin is upper left | ||||
|                8:             TypeRuntimeArray 7(fvec4) | ||||
|                9:             TypeStruct 8 | ||||
|               10:             TypePointer Uniform 9(struct) | ||||
|               11:             TypeInt 32 1 | ||||
|               11:             TypeInt 32 0 | ||||
|               12:             TypeStruct 11(int) | ||||
|               13:             TypePointer Uniform 12(struct) | ||||
|               14:             TypeFunction 7(fvec4) 10(ptr) 13(ptr) 10(ptr) 13(ptr) | ||||
|               21:             TypeInt 32 0 | ||||
|               22:             TypePointer Function 21(int) | ||||
|               23:             TypeFunction 7(fvec4) 22(ptr) | ||||
|               27:     11(int) Constant 0 | ||||
|               21:             TypePointer Function 11(int) | ||||
|               22:             TypeFunction 7(fvec4) 21(ptr) | ||||
|               26:             TypeInt 32 1 | ||||
|               27:     26(int) Constant 0 | ||||
|               28:             TypePointer Uniform 11(int) | ||||
|               30:     11(int) Constant 1 | ||||
|               31:     21(int) Constant 1 | ||||
|               32:     21(int) Constant 0 | ||||
|               34:    6(float) Constant 1065353216 | ||||
|               35:    6(float) Constant 1073741824 | ||||
|               36:    6(float) Constant 1077936128 | ||||
|               37:    6(float) Constant 1082130432 | ||||
|               38:    7(fvec4) ConstantComposite 34 35 36 37 | ||||
|               39:             TypePointer Uniform 7(fvec4) | ||||
|               42:     11(int) Constant 4294967295 | ||||
|               31:     11(int) Constant 0 | ||||
|               33:    6(float) Constant 1065353216 | ||||
|               34:    6(float) Constant 1073741824 | ||||
|               35:    6(float) Constant 1077936128 | ||||
|               36:    6(float) Constant 1082130432 | ||||
|               37:    7(fvec4) ConstantComposite 33 34 35 36 | ||||
|               38:             TypePointer Uniform 7(fvec4) | ||||
|               41:     11(int) Constant 4294967295 | ||||
|               43:     26(int) Constant 4294967295 | ||||
|       49(sbuf_a):     10(ptr) Variable Uniform | ||||
| 50(sbuf_a@count):     13(ptr) Variable Uniform | ||||
|       51(sbuf_c):     10(ptr) Variable Uniform | ||||
| 52(sbuf_c@count):     13(ptr) Variable Uniform | ||||
|               57:             TypePointer Input 21(int) | ||||
|               57:             TypePointer Input 11(int) | ||||
|          58(pos):     57(ptr) Variable Input | ||||
|               60:             TypePointer Output 7(fvec4) | ||||
| 61(@entryPointOutput):     60(ptr) Variable Output | ||||
| @ -241,13 +241,13 @@ gl_FragCoord origin is upper left | ||||
|  69(sbuf_unused):     10(ptr) Variable Uniform | ||||
|          4(main):           2 Function None 3 | ||||
|                5:             Label | ||||
|          56(pos):     22(ptr) Variable Function | ||||
|        62(param):     22(ptr) Variable Function | ||||
|               59:     21(int) Load 58(pos) | ||||
|          56(pos):     21(ptr) Variable Function | ||||
|        62(param):     21(ptr) Variable Function | ||||
|               59:     11(int) Load 58(pos) | ||||
|                               Store 56(pos) 59 | ||||
|               63:     21(int) Load 56(pos) | ||||
|               63:     11(int) Load 56(pos) | ||||
|                               Store 62(param) 63 | ||||
|               64:    7(fvec4) FunctionCall 25(@main(u1;) 62(param) | ||||
|               64:    7(fvec4) FunctionCall 24(@main(u1;) 62(param) | ||||
|                               Store 61(@entryPointOutput) 64 | ||||
|                               Return | ||||
|                               FunctionEnd | ||||
| @ -258,19 +258,19 @@ gl_FragCoord origin is upper left | ||||
|  18(arg_c@count):     13(ptr) FunctionParameter | ||||
|               20:             Label | ||||
|               29:     28(ptr) AccessChain 16(arg_a@count) 27 | ||||
|               33:     21(int) AtomicIAdd 29 31 32 30 | ||||
|               40:     39(ptr) AccessChain 15(arg_a) 27 33 | ||||
|                               Store 40 38 | ||||
|               41:     28(ptr) AccessChain 18(arg_c@count) 27 | ||||
|               43:     21(int) AtomicIAdd 41 31 32 42 | ||||
|               44:     21(int) IAdd 43 42 | ||||
|               45:     39(ptr) AccessChain 17(arg_c) 27 44 | ||||
|               32:     11(int) AtomicIAdd 29 30 31 30 | ||||
|               39:     38(ptr) AccessChain 15(arg_a) 27 32 | ||||
|                               Store 39 37 | ||||
|               40:     28(ptr) AccessChain 18(arg_c@count) 27 | ||||
|               42:     11(int) AtomicIAdd 40 30 31 41 | ||||
|               44:     11(int) IAdd 42 43 | ||||
|               45:     38(ptr) AccessChain 17(arg_c) 27 44 | ||||
|               46:    7(fvec4) Load 45 | ||||
|                               ReturnValue 46 | ||||
|                               FunctionEnd | ||||
|    25(@main(u1;):    7(fvec4) Function None 23 | ||||
|          24(pos):     22(ptr) FunctionParameter | ||||
|               26:             Label | ||||
|    24(@main(u1;):    7(fvec4) Function None 22 | ||||
|          23(pos):     21(ptr) FunctionParameter | ||||
|               25:             Label | ||||
|               53:    7(fvec4) FunctionCall 19(Fn2(block--vf4[0]1;block--vf4[0]1;) 49(sbuf_a) 50(sbuf_a@count) 51(sbuf_c) 52(sbuf_c@count) | ||||
|                               ReturnValue 53 | ||||
|                               FunctionEnd | ||||
|  | ||||
| @ -13,12 +13,12 @@ gl_FragCoord origin is upper left | ||||
| 0:8            Constant: | ||||
| 0:8              0 (const uint) | ||||
| 0:8          AtomicAdd ( temp uint) | ||||
| 0:8            @count: direct index for structure ( temp int) | ||||
| 0:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:8            @count: direct index for structure ( temp uint) | ||||
| 0:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:8              Constant: | ||||
| 0:8                0 (const int) | ||||
| 0:8            Constant: | ||||
| 0:8              1 (const int) | ||||
| 0:8              1 (const uint) | ||||
| 0:?         Constant: | ||||
| 0:?           1.000000 | ||||
| 0:?           2.000000 | ||||
| @ -32,12 +32,12 @@ gl_FragCoord origin is upper left | ||||
| 0:10              0 (const uint) | ||||
| 0:10          add ( temp uint) | ||||
| 0:10            AtomicAdd ( temp uint) | ||||
| 0:10              @count: direct index for structure ( temp int) | ||||
| 0:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:10              @count: direct index for structure ( temp uint) | ||||
| 0:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:10                Constant: | ||||
| 0:10                  0 (const int) | ||||
| 0:10              Constant: | ||||
| 0:10                -1 (const int) | ||||
| 0:10                4294967295 (const uint) | ||||
| 0:10            Constant: | ||||
| 0:10              -1 (const int) | ||||
| 0:7  Function Definition: main( ( temp void) | ||||
| @ -52,9 +52,9 @@ gl_FragCoord origin is upper left | ||||
| 0:?           'pos' ( temp uint) | ||||
| 0:?   Linker Objects | ||||
| 0:?     'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float) | ||||
| 0:?     'pos' (layout( location=0) flat in uint) | ||||
| @ -77,12 +77,12 @@ gl_FragCoord origin is upper left | ||||
| 0:8            Constant: | ||||
| 0:8              0 (const uint) | ||||
| 0:8          AtomicAdd ( temp uint) | ||||
| 0:8            @count: direct index for structure ( temp int) | ||||
| 0:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:8            @count: direct index for structure ( temp uint) | ||||
| 0:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:8              Constant: | ||||
| 0:8                0 (const int) | ||||
| 0:8            Constant: | ||||
| 0:8              1 (const int) | ||||
| 0:8              1 (const uint) | ||||
| 0:?         Constant: | ||||
| 0:?           1.000000 | ||||
| 0:?           2.000000 | ||||
| @ -96,12 +96,12 @@ gl_FragCoord origin is upper left | ||||
| 0:10              0 (const uint) | ||||
| 0:10          add ( temp uint) | ||||
| 0:10            AtomicAdd ( temp uint) | ||||
| 0:10              @count: direct index for structure ( temp int) | ||||
| 0:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:10              @count: direct index for structure ( temp uint) | ||||
| 0:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:10                Constant: | ||||
| 0:10                  0 (const int) | ||||
| 0:10              Constant: | ||||
| 0:10                -1 (const int) | ||||
| 0:10                4294967295 (const uint) | ||||
| 0:10            Constant: | ||||
| 0:10              -1 (const int) | ||||
| 0:7  Function Definition: main( ( temp void) | ||||
| @ -116,9 +116,9 @@ gl_FragCoord origin is upper left | ||||
| 0:?           'pos' ( temp uint) | ||||
| 0:?   Linker Objects | ||||
| 0:?     'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float) | ||||
| 0:?     'pos' (layout( location=0) flat in uint) | ||||
| @ -142,8 +142,8 @@ gl_FragCoord origin is upper left | ||||
|                               Name 20  "sbuf_a@count" | ||||
|                               MemberName 20(sbuf_a@count) 0  "@count" | ||||
|                               Name 22  "sbuf_a@count" | ||||
|                               Name 36  "sbuf_c" | ||||
|                               Name 37  "sbuf_c@count" | ||||
|                               Name 35  "sbuf_c" | ||||
|                               Name 36  "sbuf_c@count" | ||||
|                               Name 46  "pos" | ||||
|                               Name 48  "pos" | ||||
|                               Name 51  "@entryPointOutput" | ||||
| @ -156,8 +156,8 @@ gl_FragCoord origin is upper left | ||||
|                               MemberDecorate 20(sbuf_a@count) 0 Offset 0 | ||||
|                               Decorate 20(sbuf_a@count) BufferBlock | ||||
|                               Decorate 22(sbuf_a@count) DescriptorSet 0 | ||||
|                               Decorate 36(sbuf_c) DescriptorSet 0 | ||||
|                               Decorate 37(sbuf_c@count) DescriptorSet 0 | ||||
|                               Decorate 35(sbuf_c) DescriptorSet 0 | ||||
|                               Decorate 36(sbuf_c@count) DescriptorSet 0 | ||||
|                               Decorate 48(pos) Flat | ||||
|                               Decorate 48(pos) Location 0 | ||||
|                               Decorate 51(@entryPointOutput) Location 0 | ||||
| @ -175,22 +175,22 @@ gl_FragCoord origin is upper left | ||||
|       17(sbuf_a):     16(ptr) Variable Uniform | ||||
|               18:             TypeInt 32 1 | ||||
|               19:     18(int) Constant 0 | ||||
| 20(sbuf_a@count):             TypeStruct 18(int) | ||||
| 20(sbuf_a@count):             TypeStruct 6(int) | ||||
|               21:             TypePointer Uniform 20(sbuf_a@count) | ||||
| 22(sbuf_a@count):     21(ptr) Variable Uniform | ||||
|               23:             TypePointer Uniform 18(int) | ||||
|               25:     18(int) Constant 1 | ||||
|               26:      6(int) Constant 1 | ||||
|               27:      6(int) Constant 0 | ||||
|               29:    8(float) Constant 1065353216 | ||||
|               30:    8(float) Constant 1073741824 | ||||
|               31:    8(float) Constant 1077936128 | ||||
|               32:    8(float) Constant 1082130432 | ||||
|               33:    9(fvec4) ConstantComposite 29 30 31 32 | ||||
|               34:             TypePointer Uniform 9(fvec4) | ||||
|       36(sbuf_c):     16(ptr) Variable Uniform | ||||
| 37(sbuf_c@count):     21(ptr) Variable Uniform | ||||
|               39:     18(int) Constant 4294967295 | ||||
|               23:             TypePointer Uniform 6(int) | ||||
|               25:      6(int) Constant 1 | ||||
|               26:      6(int) Constant 0 | ||||
|               28:    8(float) Constant 1065353216 | ||||
|               29:    8(float) Constant 1073741824 | ||||
|               30:    8(float) Constant 1077936128 | ||||
|               31:    8(float) Constant 1082130432 | ||||
|               32:    9(fvec4) ConstantComposite 28 29 30 31 | ||||
|               33:             TypePointer Uniform 9(fvec4) | ||||
|       35(sbuf_c):     16(ptr) Variable Uniform | ||||
| 36(sbuf_c@count):     21(ptr) Variable Uniform | ||||
|               38:      6(int) Constant 4294967295 | ||||
|               40:     18(int) Constant 4294967295 | ||||
|               47:             TypePointer Input 6(int) | ||||
|          48(pos):     47(ptr) Variable Input | ||||
|               50:             TypePointer Output 9(fvec4) | ||||
| @ -212,13 +212,13 @@ gl_FragCoord origin is upper left | ||||
|          11(pos):      7(ptr) FunctionParameter | ||||
|               13:             Label | ||||
|               24:     23(ptr) AccessChain 22(sbuf_a@count) 19 | ||||
|               28:      6(int) AtomicIAdd 24 26 27 25 | ||||
|               35:     34(ptr) AccessChain 17(sbuf_a) 19 28 | ||||
|                               Store 35 33 | ||||
|               38:     23(ptr) AccessChain 37(sbuf_c@count) 19 | ||||
|               40:      6(int) AtomicIAdd 38 26 27 39 | ||||
|               41:      6(int) IAdd 40 39 | ||||
|               42:     34(ptr) AccessChain 36(sbuf_c) 19 41 | ||||
|               27:      6(int) AtomicIAdd 24 25 26 25 | ||||
|               34:     33(ptr) AccessChain 17(sbuf_a) 19 27 | ||||
|                               Store 34 32 | ||||
|               37:     23(ptr) AccessChain 36(sbuf_c@count) 19 | ||||
|               39:      6(int) AtomicIAdd 37 25 26 38 | ||||
|               41:      6(int) IAdd 39 40 | ||||
|               42:     33(ptr) AccessChain 35(sbuf_c) 19 41 | ||||
|               43:    9(fvec4) Load 42 | ||||
|                               ReturnValue 43 | ||||
|                               FunctionEnd | ||||
|  | ||||
| @ -16,12 +16,12 @@ local_size = (1, 1, 1) | ||||
| 0:14                0 (const uint) | ||||
| 0:14            add ( temp uint) | ||||
| 0:14              AtomicAdd ( temp uint) | ||||
| 0:14                @count: direct index for structure ( temp int) | ||||
| 0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:14                @count: direct index for structure ( temp uint) | ||||
| 0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:14                  Constant: | ||||
| 0:14                    0 (const int) | ||||
| 0:14                Constant: | ||||
| 0:14                  -1 (const int) | ||||
| 0:14                  4294967295 (const uint) | ||||
| 0:14              Constant: | ||||
| 0:14                -1 (const int) | ||||
| 0:15      Sequence | ||||
| @ -83,7 +83,7 @@ local_size = (1, 1, 1) | ||||
| 0:?   Linker Objects | ||||
| 0:?     'outtx' (layout( rgba32f) uniform image2D) | ||||
| 0:?     'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data}) | ||||
| 0:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID) | ||||
| 
 | ||||
| @ -108,12 +108,12 @@ local_size = (1, 1, 1) | ||||
| 0:14                0 (const uint) | ||||
| 0:14            add ( temp uint) | ||||
| 0:14              AtomicAdd ( temp uint) | ||||
| 0:14                @count: direct index for structure ( temp int) | ||||
| 0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:14                @count: direct index for structure ( temp uint) | ||||
| 0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:14                  Constant: | ||||
| 0:14                    0 (const int) | ||||
| 0:14                Constant: | ||||
| 0:14                  -1 (const int) | ||||
| 0:14                  4294967295 (const uint) | ||||
| 0:14              Constant: | ||||
| 0:14                -1 (const int) | ||||
| 0:15      Sequence | ||||
| @ -175,18 +175,18 @@ local_size = (1, 1, 1) | ||||
| 0:?   Linker Objects | ||||
| 0:?     'outtx' (layout( rgba32f) uniform image2D) | ||||
| 0:?     'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data}) | ||||
| 0:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) | ||||
| 0:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID) | ||||
| 
 | ||||
| // Module Version 10000 | ||||
| // Generated by (magic number): 80006 | ||||
| // Id's are bound by 84 | ||||
| // Id's are bound by 85 | ||||
| 
 | ||||
|                               Capability Shader | ||||
|                1:             ExtInstImport  "GLSL.std.450" | ||||
|                               MemoryModel Logical GLSL450 | ||||
|                               EntryPoint GLCompute 4  "main" 79 | ||||
|                               EntryPoint GLCompute 4  "main" 80 | ||||
|                               ExecutionMode 4 LocalSize 1 1 1 | ||||
|                               Source HLSL 500 | ||||
|                               Name 4  "main" | ||||
| @ -205,15 +205,15 @@ local_size = (1, 1, 1) | ||||
|                               Name 26  "csb@count" | ||||
|                               MemberName 26(csb@count) 0  "@count" | ||||
|                               Name 28  "csb@count" | ||||
|                               Name 48  "coord" | ||||
|                               Name 52  "storeTemp" | ||||
|                               Name 57  "outtx" | ||||
|                               Name 63  "rwsb" | ||||
|                               MemberName 63(rwsb) 0  "@data" | ||||
|                               Name 65  "rwsb" | ||||
|                               Name 77  "nThreadId" | ||||
|                               Name 79  "nThreadId" | ||||
|                               Name 81  "param" | ||||
|                               Name 49  "coord" | ||||
|                               Name 53  "storeTemp" | ||||
|                               Name 58  "outtx" | ||||
|                               Name 64  "rwsb" | ||||
|                               MemberName 64(rwsb) 0  "@data" | ||||
|                               Name 66  "rwsb" | ||||
|                               Name 78  "nThreadId" | ||||
|                               Name 80  "nThreadId" | ||||
|                               Name 82  "param" | ||||
|                               MemberDecorate 19(sb_t) 0 Offset 0 | ||||
|                               MemberDecorate 19(sb_t) 1 Offset 16 | ||||
|                               Decorate 20 ArrayStride 32 | ||||
| @ -224,12 +224,12 @@ local_size = (1, 1, 1) | ||||
|                               MemberDecorate 26(csb@count) 0 Offset 0 | ||||
|                               Decorate 26(csb@count) BufferBlock | ||||
|                               Decorate 28(csb@count) DescriptorSet 0 | ||||
|                               Decorate 57(outtx) DescriptorSet 0 | ||||
|                               Decorate 62 ArrayStride 16 | ||||
|                               MemberDecorate 63(rwsb) 0 Offset 0 | ||||
|                               Decorate 63(rwsb) BufferBlock | ||||
|                               Decorate 65(rwsb) DescriptorSet 0 | ||||
|                               Decorate 79(nThreadId) BuiltIn GlobalInvocationId | ||||
|                               Decorate 58(outtx) DescriptorSet 0 | ||||
|                               Decorate 63 ArrayStride 16 | ||||
|                               MemberDecorate 64(rwsb) 0 Offset 0 | ||||
|                               Decorate 64(rwsb) BufferBlock | ||||
|                               Decorate 66(rwsb) DescriptorSet 0 | ||||
|                               Decorate 80(nThreadId) BuiltIn GlobalInvocationId | ||||
|                2:             TypeVoid | ||||
|                3:             TypeFunction 2 | ||||
|                6:             TypeInt 32 0 | ||||
| @ -248,79 +248,80 @@ local_size = (1, 1, 1) | ||||
|          23(csb):     22(ptr) Variable Uniform | ||||
|               24:             TypeInt 32 1 | ||||
|               25:     24(int) Constant 0 | ||||
|    26(csb@count):             TypeStruct 24(int) | ||||
|    26(csb@count):             TypeStruct 6(int) | ||||
|               27:             TypePointer Uniform 26(csb@count) | ||||
|    28(csb@count):     27(ptr) Variable Uniform | ||||
|               29:             TypePointer Uniform 24(int) | ||||
|               31:     24(int) Constant 4294967295 | ||||
|               29:             TypePointer Uniform 6(int) | ||||
|               31:      6(int) Constant 4294967295 | ||||
|               32:      6(int) Constant 1 | ||||
|               33:      6(int) Constant 0 | ||||
|               36:             TypePointer Uniform 19(sb_t) | ||||
|               40:             TypePointer Function 14(fvec4) | ||||
|               43:     24(int) Constant 1 | ||||
|               44:             TypePointer Function 15(ivec2) | ||||
|               46:             TypeVector 13(float) 2 | ||||
|               47:             TypePointer Function 46(fvec2) | ||||
|               55:             TypeImage 13(float) 2D nonsampled format:Rgba32f | ||||
|               56:             TypePointer UniformConstant 55 | ||||
|        57(outtx):     56(ptr) Variable UniformConstant | ||||
|               62:             TypeRuntimeArray 14(fvec4) | ||||
|         63(rwsb):             TypeStruct 62 | ||||
|               64:             TypePointer Uniform 63(rwsb) | ||||
|         65(rwsb):     64(ptr) Variable Uniform | ||||
|               66:             TypePointer Function 13(float) | ||||
|               73:             TypePointer Uniform 14(fvec4) | ||||
|               78:             TypePointer Input 7(ivec3) | ||||
|    79(nThreadId):     78(ptr) Variable Input | ||||
|               35:     24(int) Constant 4294967295 | ||||
|               37:             TypePointer Uniform 19(sb_t) | ||||
|               41:             TypePointer Function 14(fvec4) | ||||
|               44:     24(int) Constant 1 | ||||
|               45:             TypePointer Function 15(ivec2) | ||||
|               47:             TypeVector 13(float) 2 | ||||
|               48:             TypePointer Function 47(fvec2) | ||||
|               56:             TypeImage 13(float) 2D nonsampled format:Rgba32f | ||||
|               57:             TypePointer UniformConstant 56 | ||||
|        58(outtx):     57(ptr) Variable UniformConstant | ||||
|               63:             TypeRuntimeArray 14(fvec4) | ||||
|         64(rwsb):             TypeStruct 63 | ||||
|               65:             TypePointer Uniform 64(rwsb) | ||||
|         66(rwsb):     65(ptr) Variable Uniform | ||||
|               67:             TypePointer Function 13(float) | ||||
|               74:             TypePointer Uniform 14(fvec4) | ||||
|               79:             TypePointer Input 7(ivec3) | ||||
|    80(nThreadId):     79(ptr) Variable Input | ||||
|          4(main):           2 Function None 3 | ||||
|                5:             Label | ||||
|    77(nThreadId):      8(ptr) Variable Function | ||||
|        81(param):      8(ptr) Variable Function | ||||
|               80:    7(ivec3) Load 79(nThreadId) | ||||
|                               Store 77(nThreadId) 80 | ||||
|               82:    7(ivec3) Load 77(nThreadId) | ||||
|                               Store 81(param) 82 | ||||
|               83:           2 FunctionCall 11(@main(vu3;) 81(param) | ||||
|    78(nThreadId):      8(ptr) Variable Function | ||||
|        82(param):      8(ptr) Variable Function | ||||
|               81:    7(ivec3) Load 80(nThreadId) | ||||
|                               Store 78(nThreadId) 81 | ||||
|               83:    7(ivec3) Load 78(nThreadId) | ||||
|                               Store 82(param) 83 | ||||
|               84:           2 FunctionCall 11(@main(vu3;) 82(param) | ||||
|                               Return | ||||
|                               FunctionEnd | ||||
|   11(@main(vu3;):           2 Function None 9 | ||||
|    10(nThreadId):      8(ptr) FunctionParameter | ||||
|               12:             Label | ||||
|         18(data):     17(ptr) Variable Function | ||||
|        48(coord):     47(ptr) Variable Function | ||||
|    52(storeTemp):     40(ptr) Variable Function | ||||
|        49(coord):     48(ptr) Variable Function | ||||
|    53(storeTemp):     41(ptr) Variable Function | ||||
|               30:     29(ptr) AccessChain 28(csb@count) 25 | ||||
|               34:      6(int) AtomicIAdd 30 32 33 31 | ||||
|               35:      6(int) IAdd 34 31 | ||||
|               37:     36(ptr) AccessChain 23(csb) 25 35 | ||||
|               38:    19(sb_t) Load 37 | ||||
|               39:   14(fvec4) CompositeExtract 38 0 | ||||
|               41:     40(ptr) AccessChain 18(data) 25 | ||||
|                               Store 41 39 | ||||
|               42:   15(ivec2) CompositeExtract 38 1 | ||||
|               45:     44(ptr) AccessChain 18(data) 43 | ||||
|                               Store 45 42 | ||||
|               49:     44(ptr) AccessChain 18(data) 43 | ||||
|               50:   15(ivec2) Load 49 | ||||
|               51:   46(fvec2) ConvertUToF 50 | ||||
|                               Store 48(coord) 51 | ||||
|               53:     40(ptr) AccessChain 18(data) 25 | ||||
|               54:   14(fvec4) Load 53 | ||||
|                               Store 52(storeTemp) 54 | ||||
|               58:          55 Load 57(outtx) | ||||
|               59:   46(fvec2) Load 48(coord) | ||||
|               60:   15(ivec2) ConvertFToU 59 | ||||
|               61:   14(fvec4) Load 52(storeTemp) | ||||
|                               ImageWrite 58 60 61 | ||||
|               67:     66(ptr) AccessChain 48(coord) 33 | ||||
|               68:   13(float) Load 67 | ||||
|               69:      6(int) ConvertFToU 68 | ||||
|               70:     66(ptr) AccessChain 48(coord) 32 | ||||
|               71:   13(float) Load 70 | ||||
|               72:      6(int) ConvertFToU 71 | ||||
|               74:     73(ptr) AccessChain 65(rwsb) 25 72 | ||||
|               75:   14(fvec4) Load 74 | ||||
|               76:     73(ptr) AccessChain 65(rwsb) 25 69 | ||||
|                               Store 76 75 | ||||
|               36:      6(int) IAdd 34 35 | ||||
|               38:     37(ptr) AccessChain 23(csb) 25 36 | ||||
|               39:    19(sb_t) Load 38 | ||||
|               40:   14(fvec4) CompositeExtract 39 0 | ||||
|               42:     41(ptr) AccessChain 18(data) 25 | ||||
|                               Store 42 40 | ||||
|               43:   15(ivec2) CompositeExtract 39 1 | ||||
|               46:     45(ptr) AccessChain 18(data) 44 | ||||
|                               Store 46 43 | ||||
|               50:     45(ptr) AccessChain 18(data) 44 | ||||
|               51:   15(ivec2) Load 50 | ||||
|               52:   47(fvec2) ConvertUToF 51 | ||||
|                               Store 49(coord) 52 | ||||
|               54:     41(ptr) AccessChain 18(data) 25 | ||||
|               55:   14(fvec4) Load 54 | ||||
|                               Store 53(storeTemp) 55 | ||||
|               59:          56 Load 58(outtx) | ||||
|               60:   47(fvec2) Load 49(coord) | ||||
|               61:   15(ivec2) ConvertFToU 60 | ||||
|               62:   14(fvec4) Load 53(storeTemp) | ||||
|                               ImageWrite 59 61 62 | ||||
|               68:     67(ptr) AccessChain 49(coord) 33 | ||||
|               69:   13(float) Load 68 | ||||
|               70:      6(int) ConvertFToU 69 | ||||
|               71:     67(ptr) AccessChain 49(coord) 32 | ||||
|               72:   13(float) Load 71 | ||||
|               73:      6(int) ConvertFToU 72 | ||||
|               75:     74(ptr) AccessChain 66(rwsb) 25 73 | ||||
|               76:   14(fvec4) Load 75 | ||||
|               77:     74(ptr) AccessChain 66(rwsb) 25 70 | ||||
|                               Store 77 76 | ||||
|                               Return | ||||
|                               FunctionEnd | ||||
|  | ||||
| @ -17,7 +17,7 @@ gl_FragCoord origin is upper left | ||||
| 0:10  Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) | ||||
| 0:10    Function Parameters:  | ||||
| 0:10      'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:10      'sb@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:10      'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:10      'bufferOffset' ( in uint) | ||||
| 0:10      'data' ( in 4-component vector of uint) | ||||
| 0:?     Sequence | ||||
| @ -35,7 +35,7 @@ gl_FragCoord origin is upper left | ||||
| 0:?     Sequence | ||||
| 0:21      Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) | ||||
| 0:21        'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:21        'sbuf2@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:21        'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:21        Constant: | ||||
| 0:21          2 (const uint) | ||||
| 0:21        Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) | ||||
| @ -61,7 +61,7 @@ gl_FragCoord origin is upper left | ||||
| 0:?   Linker Objects | ||||
| 0:?     'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) | ||||
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float) | ||||
| 0:?     'pos' (layout( location=0) flat in uint) | ||||
| @ -88,7 +88,7 @@ gl_FragCoord origin is upper left | ||||
| 0:10  Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) | ||||
| 0:10    Function Parameters:  | ||||
| 0:10      'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:10      'sb@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:10      'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:10      'bufferOffset' ( in uint) | ||||
| 0:10      'data' ( in 4-component vector of uint) | ||||
| 0:?     Sequence | ||||
| @ -106,7 +106,7 @@ gl_FragCoord origin is upper left | ||||
| 0:?     Sequence | ||||
| 0:21      Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) | ||||
| 0:21        'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:21        'sbuf2@count' ( buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:21        'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:21        Constant: | ||||
| 0:21          2 (const uint) | ||||
| 0:21        Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) | ||||
| @ -132,7 +132,7 @@ gl_FragCoord origin is upper left | ||||
| 0:?   Linker Objects | ||||
| 0:?     'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) | ||||
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float) | ||||
| 0:?     'pos' (layout( location=0) flat in uint) | ||||
| @ -155,15 +155,15 @@ gl_FragCoord origin is upper left | ||||
|                               Name 14  "bufferOffset" | ||||
|                               Name 18  "" | ||||
|                               MemberName 18 0  "@data" | ||||
|                               Name 21  "" | ||||
|                               MemberName 21 0  "@count" | ||||
|                               Name 29  "set(block--vu4[0]1;u1;vu4;" | ||||
|                               Name 25  "sb" | ||||
|                               Name 26  "sb@count" | ||||
|                               Name 27  "bufferOffset" | ||||
|                               Name 28  "data" | ||||
|                               Name 35  "@main(u1;" | ||||
|                               Name 34  "pos" | ||||
|                               Name 20  "" | ||||
|                               MemberName 20 0  "@count" | ||||
|                               Name 28  "set(block--vu4[0]1;u1;vu4;" | ||||
|                               Name 24  "sb" | ||||
|                               Name 25  "sb@count" | ||||
|                               Name 26  "bufferOffset" | ||||
|                               Name 27  "data" | ||||
|                               Name 34  "@main(u1;" | ||||
|                               Name 33  "pos" | ||||
|                               Name 47  "sbuf2" | ||||
|                               Name 48  "sbuf2@count" | ||||
|                               Name 50  "sbuf" | ||||
| @ -188,7 +188,7 @@ gl_FragCoord origin is upper left | ||||
|                               Decorate 17 ArrayStride 16 | ||||
|                               MemberDecorate 18 0 Offset 0 | ||||
|                               Decorate 18 BufferBlock | ||||
|                               Decorate 21 BufferBlock | ||||
|                               Decorate 20 BufferBlock | ||||
|                               Decorate 47(sbuf2) DescriptorSet 0 | ||||
|                               Decorate 48(sbuf2@count) DescriptorSet 0 | ||||
|                               Decorate 50(sbuf) DescriptorSet 0 | ||||
| @ -217,28 +217,28 @@ gl_FragCoord origin is upper left | ||||
|               17:             TypeRuntimeArray 7(ivec4) | ||||
|               18:             TypeStruct 17 | ||||
|               19:             TypePointer Uniform 18(struct) | ||||
|               20:             TypeInt 32 1 | ||||
|               21:             TypeStruct 20(int) | ||||
|               22:             TypePointer Uniform 21(struct) | ||||
|               23:             TypePointer Function 7(ivec4) | ||||
|               24:             TypeFunction 2 19(ptr) 22(ptr) 11(ptr) 23(ptr) | ||||
|               31:             TypeFloat 32 | ||||
|               32:             TypeVector 31(float) 4 | ||||
|               33:             TypeFunction 32(fvec4) 11(ptr) | ||||
|               37:     20(int) Constant 0 | ||||
|               20:             TypeStruct 6(int) | ||||
|               21:             TypePointer Uniform 20(struct) | ||||
|               22:             TypePointer Function 7(ivec4) | ||||
|               23:             TypeFunction 2 19(ptr) 21(ptr) 11(ptr) 22(ptr) | ||||
|               30:             TypeFloat 32 | ||||
|               31:             TypeVector 30(float) 4 | ||||
|               32:             TypeFunction 31(fvec4) 11(ptr) | ||||
|               36:             TypeInt 32 1 | ||||
|               37:     36(int) Constant 0 | ||||
|               39:             TypePointer Uniform 7(ivec4) | ||||
|        47(sbuf2):     19(ptr) Variable Uniform | ||||
|  48(sbuf2@count):     22(ptr) Variable Uniform | ||||
|  48(sbuf2@count):     21(ptr) Variable Uniform | ||||
|               49:      6(int) Constant 2 | ||||
|         50(sbuf):     10(ptr) Variable Uniform | ||||
|               51:      6(int) Constant 3 | ||||
|               57:   31(float) Constant 0 | ||||
|               58:   32(fvec4) ConstantComposite 57 57 57 57 | ||||
|               57:   30(float) Constant 0 | ||||
|               58:   31(fvec4) ConstantComposite 57 57 57 57 | ||||
|               62:             TypePointer Input 6(int) | ||||
|          63(pos):     62(ptr) Variable Input | ||||
|               65:             TypePointer Output 32(fvec4) | ||||
|               65:             TypePointer Output 31(fvec4) | ||||
| 66(@entryPointOutput):     65(ptr) Variable Output | ||||
|  70(sbuf2@count):             TypeStruct 20(int) | ||||
|  70(sbuf2@count):             TypeStruct 6(int) | ||||
|               71:             TypePointer Uniform 70(sbuf2@count) | ||||
|  72(sbuf2@count):     71(ptr) Variable Uniform | ||||
|               73:             TypeVector 6(int) 3 | ||||
| @ -254,7 +254,7 @@ gl_FragCoord origin is upper left | ||||
|                               Store 61(pos) 64 | ||||
|               68:      6(int) Load 61(pos) | ||||
|                               Store 67(param) 68 | ||||
|               69:   32(fvec4) FunctionCall 35(@main(u1;) 67(param) | ||||
|               69:   31(fvec4) FunctionCall 34(@main(u1;) 67(param) | ||||
|                               Store 66(@entryPointOutput) 69 | ||||
|                               Return | ||||
|                               FunctionEnd | ||||
| @ -267,28 +267,28 @@ gl_FragCoord origin is upper left | ||||
|               41:    7(ivec4) Load 40 | ||||
|                               ReturnValue 41 | ||||
|                               FunctionEnd | ||||
| 29(set(block--vu4[0]1;u1;vu4;):           2 Function None 24 | ||||
|           25(sb):     19(ptr) FunctionParameter | ||||
|     26(sb@count):     22(ptr) FunctionParameter | ||||
| 27(bufferOffset):     11(ptr) FunctionParameter | ||||
|         28(data):     23(ptr) FunctionParameter | ||||
|               30:             Label | ||||
|               44:      6(int) Load 27(bufferOffset) | ||||
|               45:    7(ivec4) Load 28(data) | ||||
|               46:     39(ptr) AccessChain 25(sb) 37 44 | ||||
| 28(set(block--vu4[0]1;u1;vu4;):           2 Function None 23 | ||||
|           24(sb):     19(ptr) FunctionParameter | ||||
|     25(sb@count):     21(ptr) FunctionParameter | ||||
| 26(bufferOffset):     11(ptr) FunctionParameter | ||||
|         27(data):     22(ptr) FunctionParameter | ||||
|               29:             Label | ||||
|               44:      6(int) Load 26(bufferOffset) | ||||
|               45:    7(ivec4) Load 27(data) | ||||
|               46:     39(ptr) AccessChain 24(sb) 37 44 | ||||
|                               Store 46 45 | ||||
|                               Return | ||||
|                               FunctionEnd | ||||
|    35(@main(u1;):   32(fvec4) Function None 33 | ||||
|          34(pos):     11(ptr) FunctionParameter | ||||
|               36:             Label | ||||
|    34(@main(u1;):   31(fvec4) Function None 32 | ||||
|          33(pos):     11(ptr) FunctionParameter | ||||
|               35:             Label | ||||
|        52(param):     11(ptr) Variable Function | ||||
|        54(param):     11(ptr) Variable Function | ||||
|        55(param):     23(ptr) Variable Function | ||||
|        55(param):     22(ptr) Variable Function | ||||
|                               Store 52(param) 51 | ||||
|               53:    7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 50(sbuf) 52(param) | ||||
|                               Store 54(param) 49 | ||||
|                               Store 55(param) 53 | ||||
|               56:           2 FunctionCall 29(set(block--vu4[0]1;u1;vu4;) 47(sbuf2) 48(sbuf2@count) 54(param) 55(param) | ||||
|               56:           2 FunctionCall 28(set(block--vu4[0]1;u1;vu4;) 47(sbuf2) 48(sbuf2@count) 54(param) 55(param) | ||||
|                               ReturnValue 58 | ||||
|                               FunctionEnd | ||||
|  | ||||
| @ -23,8 +23,8 @@ hlsl.structbuffer.incdec.frag | ||||
|                               Name 34  "sbuf_rw_i@count" | ||||
|                               MemberName 34(sbuf_rw_i@count) 0  "@count" | ||||
|                               Name 36  "sbuf_rw_i@count" | ||||
|                               Name 42  "c2" | ||||
|                               Name 43  "sbuf_rw_d@count" | ||||
|                               Name 41  "c2" | ||||
|                               Name 42  "sbuf_rw_d@count" | ||||
|                               Name 61  "pos" | ||||
|                               Name 63  "pos" | ||||
|                               Name 66  "@entryPointOutput" | ||||
| @ -38,14 +38,14 @@ hlsl.structbuffer.incdec.frag | ||||
|                               MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0 | ||||
|                               Decorate 34(sbuf_rw_i@count) BufferBlock | ||||
|                               Decorate 36(sbuf_rw_i@count) DescriptorSet 0 | ||||
|                               Decorate 43(sbuf_rw_d@count) DescriptorSet 0 | ||||
|                               Decorate 42(sbuf_rw_d@count) DescriptorSet 0 | ||||
|                               Decorate 63(pos) Flat | ||||
|                               Decorate 63(pos) Location 0 | ||||
|                               DecorateStringGOOGLE 63(pos) DecorationHlslSemanticGOOGLE  "FOO" | ||||
|                               Decorate 66(@entryPointOutput) Location 0 | ||||
|                               DecorateStringGOOGLE 66(@entryPointOutput) DecorationHlslSemanticGOOGLE  "SV_TARGET0" | ||||
|                               DecorateId 22(sbuf_rw_i) DecorationHlslCounterBufferGOOGLE 36(sbuf_rw_i@count) | ||||
|                               DecorateId 26(sbuf_rw_d) DecorationHlslCounterBufferGOOGLE 43(sbuf_rw_d@count) | ||||
|                               DecorateId 26(sbuf_rw_d) DecorationHlslCounterBufferGOOGLE 42(sbuf_rw_d@count) | ||||
|                2:             TypeVoid | ||||
|                3:             TypeFunction 2 | ||||
|                6:             TypeInt 32 0 | ||||
| @ -70,14 +70,14 @@ hlsl.structbuffer.incdec.frag | ||||
|               29:      6(int) Constant 2 | ||||
|               30:   14(ivec4) ConstantComposite 29 29 29 29 | ||||
|               31:             TypePointer Uniform 14(ivec4) | ||||
| 34(sbuf_rw_i@count):             TypeStruct 23(int) | ||||
| 34(sbuf_rw_i@count):             TypeStruct 6(int) | ||||
|               35:             TypePointer Uniform 34(sbuf_rw_i@count) | ||||
| 36(sbuf_rw_i@count):     35(ptr) Variable Uniform | ||||
|               37:             TypePointer Uniform 23(int) | ||||
|               39:     23(int) Constant 1 | ||||
|               40:      6(int) Constant 1 | ||||
| 43(sbuf_rw_d@count):     35(ptr) Variable Uniform | ||||
|               45:     23(int) Constant 4294967295 | ||||
|               37:             TypePointer Uniform 6(int) | ||||
|               39:      6(int) Constant 1 | ||||
| 42(sbuf_rw_d@count):     35(ptr) Variable Uniform | ||||
|               44:      6(int) Constant 4294967295 | ||||
|               46:     23(int) Constant 4294967295 | ||||
|               62:             TypePointer Input 6(int) | ||||
|          63(pos):     62(ptr) Variable Input | ||||
|               65:             TypePointer Output 9(fvec4) | ||||
| @ -99,26 +99,26 @@ hlsl.structbuffer.incdec.frag | ||||
|               13:             Label | ||||
|       16(result):     15(ptr) Variable Function | ||||
|           33(c1):      7(ptr) Variable Function | ||||
|           42(c2):      7(ptr) Variable Function | ||||
|           41(c2):      7(ptr) Variable Function | ||||
|                               Store 16(result) 18 | ||||
|               32:     31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28 | ||||
|                               Store 32 30 | ||||
|               38:     37(ptr) AccessChain 36(sbuf_rw_i@count) 24 | ||||
|               41:      6(int) AtomicIAdd 38 40 17 39 | ||||
|                               Store 33(c1) 41 | ||||
|               44:     37(ptr) AccessChain 43(sbuf_rw_d@count) 24 | ||||
|               46:      6(int) AtomicIAdd 44 40 17 45 | ||||
|               47:      6(int) IAdd 46 45 | ||||
|                               Store 42(c2) 47 | ||||
|               40:      6(int) AtomicIAdd 38 39 17 39 | ||||
|                               Store 33(c1) 40 | ||||
|               43:     37(ptr) AccessChain 42(sbuf_rw_d@count) 24 | ||||
|               45:      6(int) AtomicIAdd 43 39 17 44 | ||||
|               47:      6(int) IAdd 45 46 | ||||
|                               Store 41(c2) 47 | ||||
|               48:      7(ptr) AccessChain 16(result) 17 | ||||
|               49:      6(int) Load 48 | ||||
|               50:    8(float) ConvertUToF 49 | ||||
|               51:      7(ptr) AccessChain 16(result) 40 | ||||
|               51:      7(ptr) AccessChain 16(result) 39 | ||||
|               52:      6(int) Load 51 | ||||
|               53:    8(float) ConvertUToF 52 | ||||
|               54:      6(int) Load 33(c1) | ||||
|               55:    8(float) ConvertUToF 54 | ||||
|               56:      6(int) Load 42(c2) | ||||
|               56:      6(int) Load 41(c2) | ||||
|               57:    8(float) ConvertUToF 56 | ||||
|               58:    9(fvec4) CompositeConstruct 50 53 55 57 | ||||
|                               ReturnValue 58 | ||||
|  | ||||
| @ -45,23 +45,23 @@ gl_FragCoord origin is upper left | ||||
| 0:15        move second child to first child ( temp uint) | ||||
| 0:15          'c1' ( temp uint) | ||||
| 0:15          AtomicAdd ( temp uint) | ||||
| 0:15            @count: direct index for structure ( temp int) | ||||
| 0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:15            @count: direct index for structure ( temp uint) | ||||
| 0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:15              Constant: | ||||
| 0:15                0 (const int) | ||||
| 0:15            Constant: | ||||
| 0:15              1 (const int) | ||||
| 0:15              1 (const uint) | ||||
| 0:16      Sequence | ||||
| 0:16        move second child to first child ( temp uint) | ||||
| 0:16          'c2' ( temp uint) | ||||
| 0:16          add ( temp uint) | ||||
| 0:16            AtomicAdd ( temp uint) | ||||
| 0:16              @count: direct index for structure ( temp int) | ||||
| 0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:16              @count: direct index for structure ( temp uint) | ||||
| 0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:16                Constant: | ||||
| 0:16                  0 (const int) | ||||
| 0:16              Constant: | ||||
| 0:16                -1 (const int) | ||||
| 0:16                4294967295 (const uint) | ||||
| 0:16            Constant: | ||||
| 0:16              -1 (const int) | ||||
| 0:18      Branch: Return with expression | ||||
| @ -92,9 +92,9 @@ gl_FragCoord origin is upper left | ||||
| 0:?           'pos' ( temp uint) | ||||
| 0:?   Linker Objects | ||||
| 0:?     'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float) | ||||
| 0:?     'pos' (layout( location=0) flat in uint) | ||||
| @ -149,23 +149,23 @@ gl_FragCoord origin is upper left | ||||
| 0:15        move second child to first child ( temp uint) | ||||
| 0:15          'c1' ( temp uint) | ||||
| 0:15          AtomicAdd ( temp uint) | ||||
| 0:15            @count: direct index for structure ( temp int) | ||||
| 0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:15            @count: direct index for structure ( temp uint) | ||||
| 0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:15              Constant: | ||||
| 0:15                0 (const int) | ||||
| 0:15            Constant: | ||||
| 0:15              1 (const int) | ||||
| 0:15              1 (const uint) | ||||
| 0:16      Sequence | ||||
| 0:16        move second child to first child ( temp uint) | ||||
| 0:16          'c2' ( temp uint) | ||||
| 0:16          add ( temp uint) | ||||
| 0:16            AtomicAdd ( temp uint) | ||||
| 0:16              @count: direct index for structure ( temp int) | ||||
| 0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:16              @count: direct index for structure ( temp uint) | ||||
| 0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:16                Constant: | ||||
| 0:16                  0 (const int) | ||||
| 0:16              Constant: | ||||
| 0:16                -1 (const int) | ||||
| 0:16                4294967295 (const uint) | ||||
| 0:16            Constant: | ||||
| 0:16              -1 (const int) | ||||
| 0:18      Branch: Return with expression | ||||
| @ -196,9 +196,9 @@ gl_FragCoord origin is upper left | ||||
| 0:?           'pos' ( temp uint) | ||||
| 0:?   Linker Objects | ||||
| 0:?     'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count}) | ||||
| 0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) | ||||
| 0:?     'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) | ||||
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float) | ||||
| 0:?     'pos' (layout( location=0) flat in uint) | ||||
| @ -226,8 +226,8 @@ gl_FragCoord origin is upper left | ||||
|                               Name 34  "sbuf_rw_i@count" | ||||
|                               MemberName 34(sbuf_rw_i@count) 0  "@count" | ||||
|                               Name 36  "sbuf_rw_i@count" | ||||
|                               Name 42  "c2" | ||||
|                               Name 43  "sbuf_rw_d@count" | ||||
|                               Name 41  "c2" | ||||
|                               Name 42  "sbuf_rw_d@count" | ||||
|                               Name 61  "pos" | ||||
|                               Name 63  "pos" | ||||
|                               Name 66  "@entryPointOutput" | ||||
| @ -241,7 +241,7 @@ gl_FragCoord origin is upper left | ||||
|                               MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0 | ||||
|                               Decorate 34(sbuf_rw_i@count) BufferBlock | ||||
|                               Decorate 36(sbuf_rw_i@count) DescriptorSet 0 | ||||
|                               Decorate 43(sbuf_rw_d@count) DescriptorSet 0 | ||||
|                               Decorate 42(sbuf_rw_d@count) DescriptorSet 0 | ||||
|                               Decorate 63(pos) Flat | ||||
|                               Decorate 63(pos) Location 0 | ||||
|                               Decorate 66(@entryPointOutput) Location 0 | ||||
| @ -269,14 +269,14 @@ gl_FragCoord origin is upper left | ||||
|               29:      6(int) Constant 2 | ||||
|               30:   14(ivec4) ConstantComposite 29 29 29 29 | ||||
|               31:             TypePointer Uniform 14(ivec4) | ||||
| 34(sbuf_rw_i@count):             TypeStruct 23(int) | ||||
| 34(sbuf_rw_i@count):             TypeStruct 6(int) | ||||
|               35:             TypePointer Uniform 34(sbuf_rw_i@count) | ||||
| 36(sbuf_rw_i@count):     35(ptr) Variable Uniform | ||||
|               37:             TypePointer Uniform 23(int) | ||||
|               39:     23(int) Constant 1 | ||||
|               40:      6(int) Constant 1 | ||||
| 43(sbuf_rw_d@count):     35(ptr) Variable Uniform | ||||
|               45:     23(int) Constant 4294967295 | ||||
|               37:             TypePointer Uniform 6(int) | ||||
|               39:      6(int) Constant 1 | ||||
| 42(sbuf_rw_d@count):     35(ptr) Variable Uniform | ||||
|               44:      6(int) Constant 4294967295 | ||||
|               46:     23(int) Constant 4294967295 | ||||
|               62:             TypePointer Input 6(int) | ||||
|          63(pos):     62(ptr) Variable Input | ||||
|               65:             TypePointer Output 9(fvec4) | ||||
| @ -298,26 +298,26 @@ gl_FragCoord origin is upper left | ||||
|               13:             Label | ||||
|       16(result):     15(ptr) Variable Function | ||||
|           33(c1):      7(ptr) Variable Function | ||||
|           42(c2):      7(ptr) Variable Function | ||||
|           41(c2):      7(ptr) Variable Function | ||||
|                               Store 16(result) 18 | ||||
|               32:     31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28 | ||||
|                               Store 32 30 | ||||
|               38:     37(ptr) AccessChain 36(sbuf_rw_i@count) 24 | ||||
|               41:      6(int) AtomicIAdd 38 40 17 39 | ||||
|                               Store 33(c1) 41 | ||||
|               44:     37(ptr) AccessChain 43(sbuf_rw_d@count) 24 | ||||
|               46:      6(int) AtomicIAdd 44 40 17 45 | ||||
|               47:      6(int) IAdd 46 45 | ||||
|                               Store 42(c2) 47 | ||||
|               40:      6(int) AtomicIAdd 38 39 17 39 | ||||
|                               Store 33(c1) 40 | ||||
|               43:     37(ptr) AccessChain 42(sbuf_rw_d@count) 24 | ||||
|               45:      6(int) AtomicIAdd 43 39 17 44 | ||||
|               47:      6(int) IAdd 45 46 | ||||
|                               Store 41(c2) 47 | ||||
|               48:      7(ptr) AccessChain 16(result) 17 | ||||
|               49:      6(int) Load 48 | ||||
|               50:    8(float) ConvertUToF 49 | ||||
|               51:      7(ptr) AccessChain 16(result) 40 | ||||
|               51:      7(ptr) AccessChain 16(result) 39 | ||||
|               52:      6(int) Load 51 | ||||
|               53:    8(float) ConvertUToF 52 | ||||
|               54:      6(int) Load 33(c1) | ||||
|               55:    8(float) ConvertUToF 54 | ||||
|               56:      6(int) Load 42(c2) | ||||
|               56:      6(int) Load 41(c2) | ||||
|               57:    8(float) ConvertUToF 56 | ||||
|               58:    9(fvec4) CompositeConstruct 50 53 55 57 | ||||
|                               ReturnValue 58 | ||||
|  | ||||
| @ -1,12 +1,12 @@ | ||||
| spv.ssboAlias.frag | ||||
| // Module Version 10000 | ||||
| // Generated by (magic number): 80006 | ||||
| // Id's are bound by 46 | ||||
| // Id's are bound by 44 | ||||
| 
 | ||||
|                               Capability Shader | ||||
|                1:             ExtInstImport  "GLSL.std.450" | ||||
|                               MemoryModel Logical GLSL450 | ||||
|                               EntryPoint Fragment 4  "main" 43 | ||||
|                               EntryPoint Fragment 4  "main" 41 | ||||
|                               ExecutionMode 4 OriginUpperLeft | ||||
|                               Source HLSL 500 | ||||
|                               Name 4  "main" | ||||
| @ -17,10 +17,10 @@ spv.ssboAlias.frag | ||||
|                               Name 18  "Buf1@count" | ||||
|                               MemberName 18(Buf1@count) 0  "@count" | ||||
|                               Name 20  "Buf1@count" | ||||
|                               Name 30  "Buf2" | ||||
|                               Name 31  "Buf2@count" | ||||
|                               Name 43  "@entryPointOutput" | ||||
|                               Name 45  "Buf3" | ||||
|                               Name 28  "Buf2" | ||||
|                               Name 29  "Buf2@count" | ||||
|                               Name 41  "@entryPointOutput" | ||||
|                               Name 43  "Buf3" | ||||
|                               Decorate 12 ArrayStride 4 | ||||
|                               MemberDecorate 13(Buf1) 0 Offset 0 | ||||
|                               Decorate 13(Buf1) BufferBlock | ||||
| @ -30,13 +30,13 @@ spv.ssboAlias.frag | ||||
|                               Decorate 18(Buf1@count) BufferBlock | ||||
|                               Decorate 20(Buf1@count) DescriptorSet 0 | ||||
|                               Decorate 20(Buf1@count) Binding 83 | ||||
|                               Decorate 30(Buf2) DescriptorSet 0 | ||||
|                               Decorate 30(Buf2) Binding 85 | ||||
|                               Decorate 31(Buf2@count) DescriptorSet 0 | ||||
|                               Decorate 31(Buf2@count) Binding 86 | ||||
|                               Decorate 43(@entryPointOutput) Location 0 | ||||
|                               Decorate 45(Buf3) DescriptorSet 0 | ||||
|                               Decorate 45(Buf3) Binding 84 | ||||
|                               Decorate 28(Buf2) DescriptorSet 0 | ||||
|                               Decorate 28(Buf2) Binding 85 | ||||
|                               Decorate 29(Buf2@count) DescriptorSet 0 | ||||
|                               Decorate 29(Buf2@count) Binding 86 | ||||
|                               Decorate 41(@entryPointOutput) Location 0 | ||||
|                               Decorate 43(Buf3) DescriptorSet 0 | ||||
|                               Decorate 43(Buf3) Binding 84 | ||||
|                2:             TypeVoid | ||||
|                3:             TypeFunction 2 | ||||
|                6:             TypeFloat 32 | ||||
| @ -49,40 +49,38 @@ spv.ssboAlias.frag | ||||
|         15(Buf1):     14(ptr) Variable Uniform | ||||
|               16:             TypeInt 32 1 | ||||
|               17:     16(int) Constant 0 | ||||
|   18(Buf1@count):             TypeStruct 16(int) | ||||
|   18(Buf1@count):             TypeStruct 11(int) | ||||
|               19:             TypePointer Uniform 18(Buf1@count) | ||||
|   20(Buf1@count):     19(ptr) Variable Uniform | ||||
|               21:             TypePointer Uniform 16(int) | ||||
|               23:     16(int) Constant 1 | ||||
|               24:     11(int) Constant 1 | ||||
|               25:     11(int) Constant 0 | ||||
|               27:     11(int) Constant 10 | ||||
|               28:             TypePointer Uniform 11(int) | ||||
|         30(Buf2):     14(ptr) Variable Uniform | ||||
|   31(Buf2@count):     19(ptr) Variable Uniform | ||||
|               34:     11(int) Constant 20 | ||||
|               36:    6(float) Constant 1065353216 | ||||
|               37:    6(float) Constant 1077936128 | ||||
|               38:    6(float) Constant 1084227584 | ||||
|               39:    7(fvec4) ConstantComposite 36 37 38 36 | ||||
|               42:             TypePointer Output 7(fvec4) | ||||
| 43(@entryPointOutput):     42(ptr) Variable Output | ||||
|         45(Buf3):     14(ptr) Variable Uniform | ||||
|               21:             TypePointer Uniform 11(int) | ||||
|               23:     11(int) Constant 1 | ||||
|               24:     11(int) Constant 0 | ||||
|               26:     11(int) Constant 10 | ||||
|         28(Buf2):     14(ptr) Variable Uniform | ||||
|   29(Buf2@count):     19(ptr) Variable Uniform | ||||
|               32:     11(int) Constant 20 | ||||
|               34:    6(float) Constant 1065353216 | ||||
|               35:    6(float) Constant 1077936128 | ||||
|               36:    6(float) Constant 1084227584 | ||||
|               37:    7(fvec4) ConstantComposite 34 35 36 34 | ||||
|               40:             TypePointer Output 7(fvec4) | ||||
| 41(@entryPointOutput):     40(ptr) Variable Output | ||||
|         43(Buf3):     14(ptr) Variable Uniform | ||||
|          4(main):           2 Function None 3 | ||||
|                5:             Label | ||||
|               44:    7(fvec4) FunctionCall 9(@main() | ||||
|                               Store 43(@entryPointOutput) 44 | ||||
|               42:    7(fvec4) FunctionCall 9(@main() | ||||
|                               Store 41(@entryPointOutput) 42 | ||||
|                               Return | ||||
|                               FunctionEnd | ||||
|        9(@main():    7(fvec4) Function None 8 | ||||
|               10:             Label | ||||
|               22:     21(ptr) AccessChain 20(Buf1@count) 17 | ||||
|               26:     11(int) AtomicIAdd 22 24 25 23 | ||||
|               29:     28(ptr) AccessChain 15(Buf1) 17 26 | ||||
|                               Store 29 27 | ||||
|               32:     21(ptr) AccessChain 31(Buf2@count) 17 | ||||
|               33:     11(int) AtomicIAdd 32 24 25 23 | ||||
|               35:     28(ptr) AccessChain 30(Buf2) 17 33 | ||||
|                               Store 35 34 | ||||
|                               ReturnValue 39 | ||||
|               25:     11(int) AtomicIAdd 22 23 24 23 | ||||
|               27:     21(ptr) AccessChain 15(Buf1) 17 25 | ||||
|                               Store 27 26 | ||||
|               30:     21(ptr) AccessChain 29(Buf2@count) 17 | ||||
|               31:     11(int) AtomicIAdd 30 23 24 23 | ||||
|               33:     21(ptr) AccessChain 28(Buf2) 17 31 | ||||
|                               Store 33 32 | ||||
|                               ReturnValue 37 | ||||
|                               FunctionEnd | ||||
|  | ||||
| @ -3164,7 +3164,7 @@ bool HlslParseContext::hasStructBuffCounter(const TType& type) const | ||||
| void HlslParseContext::counterBufferType(const TSourceLoc& loc, TType& type) | ||||
| { | ||||
|     // Counter type
 | ||||
|     TType* counterType = new TType(EbtInt, EvqBuffer); | ||||
|     TType* counterType = new TType(EbtUint, EvqBuffer); | ||||
|     counterType->setFieldName(intermediate.implicitCounterName); | ||||
| 
 | ||||
|     TTypeList* blockStruct = new TTypeList; | ||||
| @ -3216,7 +3216,7 @@ TIntermTyped* HlslParseContext::getStructBufferCounter(const TSourceLoc& loc, TI | ||||
|     TIntermTyped* index = intermediate.addConstantUnion(0, loc); // index to counter inside block struct
 | ||||
| 
 | ||||
|     TIntermTyped* counterMember = intermediate.addIndex(EOpIndexDirectStruct, counterVar, index, loc); | ||||
|     counterMember->setType(TType(EbtInt)); | ||||
|     counterMember->setType(TType(EbtUint)); | ||||
|     return counterMember; | ||||
| } | ||||
| 
 | ||||
| @ -3249,7 +3249,7 @@ void HlslParseContext::decomposeStructBufferMethods(const TSourceLoc& loc, TInte | ||||
|     // Some methods require a hidden internal counter, obtained via getStructBufferCounter().
 | ||||
|     // This lambda adds something to it and returns the old value.
 | ||||
|     const auto incDecCounter = [&](int incval) -> TIntermTyped* { | ||||
|         TIntermTyped* incrementValue = intermediate.addConstantUnion(incval, loc, true); | ||||
|         TIntermTyped* incrementValue = intermediate.addConstantUnion(static_cast<unsigned int>(incval), loc, true); | ||||
|         TIntermTyped* counter = getStructBufferCounter(loc, bufferObj); // obtain the counter member
 | ||||
| 
 | ||||
|         if (counter == nullptr) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 John Kessenich
						John Kessenich