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