604 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			604 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)
 | |
| 
 | |
| Validation failed
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 8000a
 | |
| // 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 17(sbuf) Binding 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
 | 
