602 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			602 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
hlsl.structbuffer.atomics.frag
 | 
						|
Shader version: 500
 | 
						|
gl_FragCoord origin is upper left
 | 
						|
0:? Sequence
 | 
						|
0:5  Function Definition: @main(u1; ( temp 4-component vector of float)
 | 
						|
0:5    Function Parameters: 
 | 
						|
0:5      'pos' ( in uint)
 | 
						|
0:?     Sequence
 | 
						|
0:8      AtomicAdd ( temp uint)
 | 
						|
0:8        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:8            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:8            Constant:
 | 
						|
0:8              0 (const uint)
 | 
						|
0:8          right-shift ( temp int)
 | 
						|
0:8            Constant:
 | 
						|
0:8              8 (const int)
 | 
						|
0:8            Constant:
 | 
						|
0:8              2 (const int)
 | 
						|
0:8        Constant:
 | 
						|
0:8          1 (const int)
 | 
						|
0:9      move second child to first child ( temp uint)
 | 
						|
0:9        'u' ( temp uint)
 | 
						|
0:9        AtomicAdd ( temp uint)
 | 
						|
0:9          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:9            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:9              Constant:
 | 
						|
0:9                0 (const uint)
 | 
						|
0:9            right-shift ( temp int)
 | 
						|
0:9              Constant:
 | 
						|
0:9                8 (const int)
 | 
						|
0:9              Constant:
 | 
						|
0:9                2 (const int)
 | 
						|
0:9          Constant:
 | 
						|
0:9            1 (const int)
 | 
						|
0:10      AtomicAnd ( temp uint)
 | 
						|
0:10        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:10            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:10            Constant:
 | 
						|
0:10              0 (const uint)
 | 
						|
0:10          right-shift ( temp int)
 | 
						|
0:10            Constant:
 | 
						|
0:10              8 (const int)
 | 
						|
0:10            Constant:
 | 
						|
0:10              2 (const int)
 | 
						|
0:10        Constant:
 | 
						|
0:10          1 (const int)
 | 
						|
0:11      move second child to first child ( temp uint)
 | 
						|
0:11        'u' ( temp uint)
 | 
						|
0:11        AtomicAnd ( temp uint)
 | 
						|
0:11          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:11            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:11              Constant:
 | 
						|
0:11                0 (const uint)
 | 
						|
0:11            right-shift ( temp int)
 | 
						|
0:11              Constant:
 | 
						|
0:11                8 (const int)
 | 
						|
0:11              Constant:
 | 
						|
0:11                2 (const int)
 | 
						|
0:11          Constant:
 | 
						|
0:11            1 (const int)
 | 
						|
0:12      move second child to first child ( temp uint)
 | 
						|
0:12        'u' ( temp uint)
 | 
						|
0:12        Convert int to uint ( temp uint)
 | 
						|
0:12          AtomicCompSwap ( temp int)
 | 
						|
0:12            indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:12              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:12                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:12                Constant:
 | 
						|
0:12                  0 (const uint)
 | 
						|
0:12              right-shift ( temp int)
 | 
						|
0:12                Constant:
 | 
						|
0:12                  8 (const int)
 | 
						|
0:12                Constant:
 | 
						|
0:12                  2 (const int)
 | 
						|
0:12            Constant:
 | 
						|
0:12              1 (const int)
 | 
						|
0:12            Constant:
 | 
						|
0:12              2 (const int)
 | 
						|
0:14      move second child to first child ( temp uint)
 | 
						|
0:14        'u' ( temp uint)
 | 
						|
0:14        AtomicExchange ( temp uint)
 | 
						|
0:14          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:14              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:14              Constant:
 | 
						|
0:14                0 (const uint)
 | 
						|
0:14            right-shift ( temp int)
 | 
						|
0:14              Constant:
 | 
						|
0:14                8 (const int)
 | 
						|
0:14              Constant:
 | 
						|
0:14                2 (const int)
 | 
						|
0:14          Constant:
 | 
						|
0:14            1 (const int)
 | 
						|
0:15      AtomicMax ( temp uint)
 | 
						|
0:15        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:15          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:15            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:15            Constant:
 | 
						|
0:15              0 (const uint)
 | 
						|
0:15          right-shift ( temp int)
 | 
						|
0:15            Constant:
 | 
						|
0:15              8 (const int)
 | 
						|
0:15            Constant:
 | 
						|
0:15              2 (const int)
 | 
						|
0:15        Constant:
 | 
						|
0:15          1 (const int)
 | 
						|
0:16      move second child to first child ( temp uint)
 | 
						|
0:16        'u' ( temp uint)
 | 
						|
0:16        AtomicMax ( temp uint)
 | 
						|
0:16          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:16            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:16              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:16              Constant:
 | 
						|
0:16                0 (const uint)
 | 
						|
0:16            right-shift ( temp int)
 | 
						|
0:16              Constant:
 | 
						|
0:16                8 (const int)
 | 
						|
0:16              Constant:
 | 
						|
0:16                2 (const int)
 | 
						|
0:16          Constant:
 | 
						|
0:16            1 (const int)
 | 
						|
0:17      AtomicMin ( temp uint)
 | 
						|
0:17        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:17          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:17            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:17            Constant:
 | 
						|
0:17              0 (const uint)
 | 
						|
0:17          right-shift ( temp int)
 | 
						|
0:17            Constant:
 | 
						|
0:17              8 (const int)
 | 
						|
0:17            Constant:
 | 
						|
0:17              2 (const int)
 | 
						|
0:17        Constant:
 | 
						|
0:17          1 (const int)
 | 
						|
0:18      move second child to first child ( temp uint)
 | 
						|
0:18        'u' ( temp uint)
 | 
						|
0:18        AtomicMin ( temp uint)
 | 
						|
0:18          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:18            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:18              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:18              Constant:
 | 
						|
0:18                0 (const uint)
 | 
						|
0:18            right-shift ( temp int)
 | 
						|
0:18              Constant:
 | 
						|
0:18                8 (const int)
 | 
						|
0:18              Constant:
 | 
						|
0:18                2 (const int)
 | 
						|
0:18          Constant:
 | 
						|
0:18            1 (const int)
 | 
						|
0:19      AtomicOr ( temp uint)
 | 
						|
0:19        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:19          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:19            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:19            Constant:
 | 
						|
0:19              0 (const uint)
 | 
						|
0:19          right-shift ( temp int)
 | 
						|
0:19            Constant:
 | 
						|
0:19              8 (const int)
 | 
						|
0:19            Constant:
 | 
						|
0:19              2 (const int)
 | 
						|
0:19        Constant:
 | 
						|
0:19          1 (const int)
 | 
						|
0:20      move second child to first child ( temp uint)
 | 
						|
0:20        'u' ( temp uint)
 | 
						|
0:20        AtomicOr ( temp uint)
 | 
						|
0:20          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:20            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:20              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:20              Constant:
 | 
						|
0:20                0 (const uint)
 | 
						|
0:20            right-shift ( temp int)
 | 
						|
0:20              Constant:
 | 
						|
0:20                8 (const int)
 | 
						|
0:20              Constant:
 | 
						|
0:20                2 (const int)
 | 
						|
0:20          Constant:
 | 
						|
0:20            1 (const int)
 | 
						|
0:21      AtomicXor ( temp uint)
 | 
						|
0:21        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:21          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:21            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:21            Constant:
 | 
						|
0:21              0 (const uint)
 | 
						|
0:21          right-shift ( temp int)
 | 
						|
0:21            Constant:
 | 
						|
0:21              8 (const int)
 | 
						|
0:21            Constant:
 | 
						|
0:21              2 (const int)
 | 
						|
0:21        Constant:
 | 
						|
0:21          1 (const int)
 | 
						|
0:22      move second child to first child ( temp uint)
 | 
						|
0:22        'u' ( temp uint)
 | 
						|
0:22        AtomicXor ( temp uint)
 | 
						|
0:22          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:22            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:22              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:22              Constant:
 | 
						|
0:22                0 (const uint)
 | 
						|
0:22            right-shift ( temp int)
 | 
						|
0:22              Constant:
 | 
						|
0:22                8 (const int)
 | 
						|
0:22              Constant:
 | 
						|
0:22                2 (const int)
 | 
						|
0:22          Constant:
 | 
						|
0:22            1 (const int)
 | 
						|
0:24      Branch: Return with expression
 | 
						|
0:24        Construct vec4 ( temp 4-component vector of float)
 | 
						|
0:24          Convert uint to float ( temp float)
 | 
						|
0:24            indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:24              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:24                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:24                Constant:
 | 
						|
0:24                  0 (const uint)
 | 
						|
0:24              right-shift ( temp int)
 | 
						|
0:24                'pos' ( in uint)
 | 
						|
0:24                Constant:
 | 
						|
0:24                  2 (const int)
 | 
						|
0:5  Function Definition: main( ( temp void)
 | 
						|
0:5    Function Parameters: 
 | 
						|
0:?     Sequence
 | 
						|
0:5      move second child to first child ( temp uint)
 | 
						|
0:?         'pos' ( temp uint)
 | 
						|
0:?         'pos' (layout( location=0) flat in uint)
 | 
						|
0:5      move second child to first child ( temp 4-component vector of float)
 | 
						|
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | 
						|
0:5        Function Call: @main(u1; ( temp 4-component vector of float)
 | 
						|
0:?           'pos' ( temp uint)
 | 
						|
0:?   Linker Objects
 | 
						|
0:?     'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | 
						|
0:?     'pos' (layout( location=0) flat in uint)
 | 
						|
 | 
						|
 | 
						|
Linked fragment stage:
 | 
						|
 | 
						|
 | 
						|
Shader version: 500
 | 
						|
gl_FragCoord origin is upper left
 | 
						|
0:? Sequence
 | 
						|
0:5  Function Definition: @main(u1; ( temp 4-component vector of float)
 | 
						|
0:5    Function Parameters: 
 | 
						|
0:5      'pos' ( in uint)
 | 
						|
0:?     Sequence
 | 
						|
0:8      AtomicAdd ( temp uint)
 | 
						|
0:8        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:8            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:8            Constant:
 | 
						|
0:8              0 (const uint)
 | 
						|
0:8          right-shift ( temp int)
 | 
						|
0:8            Constant:
 | 
						|
0:8              8 (const int)
 | 
						|
0:8            Constant:
 | 
						|
0:8              2 (const int)
 | 
						|
0:8        Constant:
 | 
						|
0:8          1 (const int)
 | 
						|
0:9      move second child to first child ( temp uint)
 | 
						|
0:9        'u' ( temp uint)
 | 
						|
0:9        AtomicAdd ( temp uint)
 | 
						|
0:9          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:9            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:9              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:9              Constant:
 | 
						|
0:9                0 (const uint)
 | 
						|
0:9            right-shift ( temp int)
 | 
						|
0:9              Constant:
 | 
						|
0:9                8 (const int)
 | 
						|
0:9              Constant:
 | 
						|
0:9                2 (const int)
 | 
						|
0:9          Constant:
 | 
						|
0:9            1 (const int)
 | 
						|
0:10      AtomicAnd ( temp uint)
 | 
						|
0:10        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:10            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:10            Constant:
 | 
						|
0:10              0 (const uint)
 | 
						|
0:10          right-shift ( temp int)
 | 
						|
0:10            Constant:
 | 
						|
0:10              8 (const int)
 | 
						|
0:10            Constant:
 | 
						|
0:10              2 (const int)
 | 
						|
0:10        Constant:
 | 
						|
0:10          1 (const int)
 | 
						|
0:11      move second child to first child ( temp uint)
 | 
						|
0:11        'u' ( temp uint)
 | 
						|
0:11        AtomicAnd ( temp uint)
 | 
						|
0:11          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:11            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:11              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:11              Constant:
 | 
						|
0:11                0 (const uint)
 | 
						|
0:11            right-shift ( temp int)
 | 
						|
0:11              Constant:
 | 
						|
0:11                8 (const int)
 | 
						|
0:11              Constant:
 | 
						|
0:11                2 (const int)
 | 
						|
0:11          Constant:
 | 
						|
0:11            1 (const int)
 | 
						|
0:12      move second child to first child ( temp uint)
 | 
						|
0:12        'u' ( temp uint)
 | 
						|
0:12        Convert int to uint ( temp uint)
 | 
						|
0:12          AtomicCompSwap ( temp int)
 | 
						|
0:12            indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:12              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:12                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:12                Constant:
 | 
						|
0:12                  0 (const uint)
 | 
						|
0:12              right-shift ( temp int)
 | 
						|
0:12                Constant:
 | 
						|
0:12                  8 (const int)
 | 
						|
0:12                Constant:
 | 
						|
0:12                  2 (const int)
 | 
						|
0:12            Constant:
 | 
						|
0:12              1 (const int)
 | 
						|
0:12            Constant:
 | 
						|
0:12              2 (const int)
 | 
						|
0:14      move second child to first child ( temp uint)
 | 
						|
0:14        'u' ( temp uint)
 | 
						|
0:14        AtomicExchange ( temp uint)
 | 
						|
0:14          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:14              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:14              Constant:
 | 
						|
0:14                0 (const uint)
 | 
						|
0:14            right-shift ( temp int)
 | 
						|
0:14              Constant:
 | 
						|
0:14                8 (const int)
 | 
						|
0:14              Constant:
 | 
						|
0:14                2 (const int)
 | 
						|
0:14          Constant:
 | 
						|
0:14            1 (const int)
 | 
						|
0:15      AtomicMax ( temp uint)
 | 
						|
0:15        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:15          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:15            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:15            Constant:
 | 
						|
0:15              0 (const uint)
 | 
						|
0:15          right-shift ( temp int)
 | 
						|
0:15            Constant:
 | 
						|
0:15              8 (const int)
 | 
						|
0:15            Constant:
 | 
						|
0:15              2 (const int)
 | 
						|
0:15        Constant:
 | 
						|
0:15          1 (const int)
 | 
						|
0:16      move second child to first child ( temp uint)
 | 
						|
0:16        'u' ( temp uint)
 | 
						|
0:16        AtomicMax ( temp uint)
 | 
						|
0:16          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:16            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:16              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:16              Constant:
 | 
						|
0:16                0 (const uint)
 | 
						|
0:16            right-shift ( temp int)
 | 
						|
0:16              Constant:
 | 
						|
0:16                8 (const int)
 | 
						|
0:16              Constant:
 | 
						|
0:16                2 (const int)
 | 
						|
0:16          Constant:
 | 
						|
0:16            1 (const int)
 | 
						|
0:17      AtomicMin ( temp uint)
 | 
						|
0:17        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:17          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:17            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:17            Constant:
 | 
						|
0:17              0 (const uint)
 | 
						|
0:17          right-shift ( temp int)
 | 
						|
0:17            Constant:
 | 
						|
0:17              8 (const int)
 | 
						|
0:17            Constant:
 | 
						|
0:17              2 (const int)
 | 
						|
0:17        Constant:
 | 
						|
0:17          1 (const int)
 | 
						|
0:18      move second child to first child ( temp uint)
 | 
						|
0:18        'u' ( temp uint)
 | 
						|
0:18        AtomicMin ( temp uint)
 | 
						|
0:18          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:18            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:18              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:18              Constant:
 | 
						|
0:18                0 (const uint)
 | 
						|
0:18            right-shift ( temp int)
 | 
						|
0:18              Constant:
 | 
						|
0:18                8 (const int)
 | 
						|
0:18              Constant:
 | 
						|
0:18                2 (const int)
 | 
						|
0:18          Constant:
 | 
						|
0:18            1 (const int)
 | 
						|
0:19      AtomicOr ( temp uint)
 | 
						|
0:19        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:19          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:19            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:19            Constant:
 | 
						|
0:19              0 (const uint)
 | 
						|
0:19          right-shift ( temp int)
 | 
						|
0:19            Constant:
 | 
						|
0:19              8 (const int)
 | 
						|
0:19            Constant:
 | 
						|
0:19              2 (const int)
 | 
						|
0:19        Constant:
 | 
						|
0:19          1 (const int)
 | 
						|
0:20      move second child to first child ( temp uint)
 | 
						|
0:20        'u' ( temp uint)
 | 
						|
0:20        AtomicOr ( temp uint)
 | 
						|
0:20          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:20            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:20              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:20              Constant:
 | 
						|
0:20                0 (const uint)
 | 
						|
0:20            right-shift ( temp int)
 | 
						|
0:20              Constant:
 | 
						|
0:20                8 (const int)
 | 
						|
0:20              Constant:
 | 
						|
0:20                2 (const int)
 | 
						|
0:20          Constant:
 | 
						|
0:20            1 (const int)
 | 
						|
0:21      AtomicXor ( temp uint)
 | 
						|
0:21        indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:21          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:21            'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:21            Constant:
 | 
						|
0:21              0 (const uint)
 | 
						|
0:21          right-shift ( temp int)
 | 
						|
0:21            Constant:
 | 
						|
0:21              8 (const int)
 | 
						|
0:21            Constant:
 | 
						|
0:21              2 (const int)
 | 
						|
0:21        Constant:
 | 
						|
0:21          1 (const int)
 | 
						|
0:22      move second child to first child ( temp uint)
 | 
						|
0:22        'u' ( temp uint)
 | 
						|
0:22        AtomicXor ( temp uint)
 | 
						|
0:22          indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:22            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:22              'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:22              Constant:
 | 
						|
0:22                0 (const uint)
 | 
						|
0:22            right-shift ( temp int)
 | 
						|
0:22              Constant:
 | 
						|
0:22                8 (const int)
 | 
						|
0:22              Constant:
 | 
						|
0:22                2 (const int)
 | 
						|
0:22          Constant:
 | 
						|
0:22            1 (const int)
 | 
						|
0:24      Branch: Return with expression
 | 
						|
0:24        Construct vec4 ( temp 4-component vector of float)
 | 
						|
0:24          Convert uint to float ( temp float)
 | 
						|
0:24            indirect index (layout( row_major std430) buffer uint)
 | 
						|
0:24              @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
 | 
						|
0:24                'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:24                Constant:
 | 
						|
0:24                  0 (const uint)
 | 
						|
0:24              right-shift ( temp int)
 | 
						|
0:24                'pos' ( in uint)
 | 
						|
0:24                Constant:
 | 
						|
0:24                  2 (const int)
 | 
						|
0:5  Function Definition: main( ( temp void)
 | 
						|
0:5    Function Parameters: 
 | 
						|
0:?     Sequence
 | 
						|
0:5      move second child to first child ( temp uint)
 | 
						|
0:?         'pos' ( temp uint)
 | 
						|
0:?         'pos' (layout( location=0) flat in uint)
 | 
						|
0:5      move second child to first child ( temp 4-component vector of float)
 | 
						|
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | 
						|
0:5        Function Call: @main(u1; ( temp 4-component vector of float)
 | 
						|
0:?           'pos' ( temp uint)
 | 
						|
0:?   Linker Objects
 | 
						|
0:?     'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 | 
						|
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | 
						|
0:?     'pos' (layout( location=0) flat in uint)
 | 
						|
 | 
						|
// Module Version 10000
 | 
						|
// Generated by (magic number): 80006
 | 
						|
// Id's are bound by 87
 | 
						|
 | 
						|
                              Capability Shader
 | 
						|
               1:             ExtInstImport  "GLSL.std.450"
 | 
						|
                              MemoryModel Logical GLSL450
 | 
						|
                              EntryPoint Fragment 4  "main" 80 83
 | 
						|
                              ExecutionMode 4 OriginUpperLeft
 | 
						|
                              Source HLSL 500
 | 
						|
                              Name 4  "main"
 | 
						|
                              Name 12  "@main(u1;"
 | 
						|
                              Name 11  "pos"
 | 
						|
                              Name 15  "sbuf"
 | 
						|
                              MemberName 15(sbuf) 0  "@data"
 | 
						|
                              Name 17  "sbuf"
 | 
						|
                              Name 29  "u"
 | 
						|
                              Name 78  "pos"
 | 
						|
                              Name 80  "pos"
 | 
						|
                              Name 83  "@entryPointOutput"
 | 
						|
                              Name 84  "param"
 | 
						|
                              Decorate 14 ArrayStride 4
 | 
						|
                              MemberDecorate 15(sbuf) 0 Offset 0
 | 
						|
                              Decorate 15(sbuf) BufferBlock
 | 
						|
                              Decorate 17(sbuf) DescriptorSet 0
 | 
						|
                              Decorate 80(pos) Flat
 | 
						|
                              Decorate 80(pos) Location 0
 | 
						|
                              Decorate 83(@entryPointOutput) Location 0
 | 
						|
               2:             TypeVoid
 | 
						|
               3:             TypeFunction 2
 | 
						|
               6:             TypeInt 32 0
 | 
						|
               7:             TypePointer Function 6(int)
 | 
						|
               8:             TypeFloat 32
 | 
						|
               9:             TypeVector 8(float) 4
 | 
						|
              10:             TypeFunction 9(fvec4) 7(ptr)
 | 
						|
              14:             TypeRuntimeArray 6(int)
 | 
						|
        15(sbuf):             TypeStruct 14
 | 
						|
              16:             TypePointer Uniform 15(sbuf)
 | 
						|
        17(sbuf):     16(ptr) Variable Uniform
 | 
						|
              18:             TypeInt 32 1
 | 
						|
              19:     18(int) Constant 0
 | 
						|
              20:     18(int) Constant 8
 | 
						|
              21:     18(int) Constant 2
 | 
						|
              23:             TypePointer Uniform 6(int)
 | 
						|
              25:     18(int) Constant 1
 | 
						|
              26:      6(int) Constant 1
 | 
						|
              27:      6(int) Constant 0
 | 
						|
              79:             TypePointer Input 6(int)
 | 
						|
         80(pos):     79(ptr) Variable Input
 | 
						|
              82:             TypePointer Output 9(fvec4)
 | 
						|
83(@entryPointOutput):     82(ptr) Variable Output
 | 
						|
         4(main):           2 Function None 3
 | 
						|
               5:             Label
 | 
						|
         78(pos):      7(ptr) Variable Function
 | 
						|
       84(param):      7(ptr) Variable Function
 | 
						|
              81:      6(int) Load 80(pos)
 | 
						|
                              Store 78(pos) 81
 | 
						|
              85:      6(int) Load 78(pos)
 | 
						|
                              Store 84(param) 85
 | 
						|
              86:    9(fvec4) FunctionCall 12(@main(u1;) 84(param)
 | 
						|
                              Store 83(@entryPointOutput) 86
 | 
						|
                              Return
 | 
						|
                              FunctionEnd
 | 
						|
   12(@main(u1;):    9(fvec4) Function None 10
 | 
						|
         11(pos):      7(ptr) FunctionParameter
 | 
						|
              13:             Label
 | 
						|
           29(u):      7(ptr) Variable Function
 | 
						|
              22:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              24:     23(ptr) AccessChain 17(sbuf) 19 22
 | 
						|
              28:      6(int) AtomicIAdd 24 26 27 25
 | 
						|
              30:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              31:     23(ptr) AccessChain 17(sbuf) 19 30
 | 
						|
              32:      6(int) AtomicIAdd 31 26 27 25
 | 
						|
                              Store 29(u) 32
 | 
						|
              33:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              34:     23(ptr) AccessChain 17(sbuf) 19 33
 | 
						|
              35:      6(int) AtomicAnd 34 26 27 25
 | 
						|
              36:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              37:     23(ptr) AccessChain 17(sbuf) 19 36
 | 
						|
              38:      6(int) AtomicAnd 37 26 27 25
 | 
						|
                              Store 29(u) 38
 | 
						|
              39:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              40:     23(ptr) AccessChain 17(sbuf) 19 39
 | 
						|
              41:     18(int) AtomicCompareExchange 40 26 27 27 21 25
 | 
						|
              42:      6(int) Bitcast 41
 | 
						|
                              Store 29(u) 42
 | 
						|
              43:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              44:     23(ptr) AccessChain 17(sbuf) 19 43
 | 
						|
              45:      6(int) AtomicExchange 44 26 27 25
 | 
						|
                              Store 29(u) 45
 | 
						|
              46:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              47:     23(ptr) AccessChain 17(sbuf) 19 46
 | 
						|
              48:      6(int) AtomicUMax 47 26 27 25
 | 
						|
              49:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              50:     23(ptr) AccessChain 17(sbuf) 19 49
 | 
						|
              51:      6(int) AtomicUMax 50 26 27 25
 | 
						|
                              Store 29(u) 51
 | 
						|
              52:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              53:     23(ptr) AccessChain 17(sbuf) 19 52
 | 
						|
              54:      6(int) AtomicUMin 53 26 27 25
 | 
						|
              55:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              56:     23(ptr) AccessChain 17(sbuf) 19 55
 | 
						|
              57:      6(int) AtomicUMin 56 26 27 25
 | 
						|
                              Store 29(u) 57
 | 
						|
              58:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              59:     23(ptr) AccessChain 17(sbuf) 19 58
 | 
						|
              60:      6(int) AtomicOr 59 26 27 25
 | 
						|
              61:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              62:     23(ptr) AccessChain 17(sbuf) 19 61
 | 
						|
              63:      6(int) AtomicOr 62 26 27 25
 | 
						|
                              Store 29(u) 63
 | 
						|
              64:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              65:     23(ptr) AccessChain 17(sbuf) 19 64
 | 
						|
              66:      6(int) AtomicXor 65 26 27 25
 | 
						|
              67:     18(int) ShiftRightArithmetic 20 21
 | 
						|
              68:     23(ptr) AccessChain 17(sbuf) 19 67
 | 
						|
              69:      6(int) AtomicXor 68 26 27 25
 | 
						|
                              Store 29(u) 69
 | 
						|
              70:      6(int) Load 11(pos)
 | 
						|
              71:     18(int) ShiftRightLogical 70 21
 | 
						|
              72:     23(ptr) AccessChain 17(sbuf) 19 71
 | 
						|
              73:      6(int) Load 72
 | 
						|
              74:    8(float) ConvertUToF 73
 | 
						|
              75:    9(fvec4) CompositeConstruct 74 74 74 74
 | 
						|
                              ReturnValue 75
 | 
						|
                              FunctionEnd
 |