59 lines
		
	
	
		
			677 B
		
	
	
	
		
			Metal
		
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			677 B
		
	
	
	
		
			Metal
		
	
	
	
| #include <metal_stdlib>
 | |
| #include <simd/simd.h>
 | |
| using namespace metal;
 | |
| struct S1 {
 | |
|     int x;
 | |
| };
 | |
| struct S2 {
 | |
|     S1 x;
 | |
| };
 | |
| struct S3 {
 | |
|     S2 x;
 | |
| };
 | |
| struct S4 {
 | |
|     S3 x;
 | |
| };
 | |
| struct S5 {
 | |
|     S4 x;
 | |
| };
 | |
| struct S6 {
 | |
|     S5 x;
 | |
| };
 | |
| struct S7 {
 | |
|     S6 x;
 | |
| };
 | |
| struct S8 {
 | |
|     S7 x;
 | |
| };
 | |
| struct SA1 {
 | |
|     array<int, 2> x;
 | |
| };
 | |
| struct SA2 {
 | |
|     array<SA1, 2> x;
 | |
| };
 | |
| struct SA3 {
 | |
|     array<SA2, 2> x;
 | |
| };
 | |
| struct SA4 {
 | |
|     array<SA3, 2> x;
 | |
| };
 | |
| struct SA5 {
 | |
|     array<SA4, 2> x;
 | |
| };
 | |
| struct SA6 {
 | |
|     array<SA5, 2> x;
 | |
| };
 | |
| struct SA7 {
 | |
|     array<SA6, 2> x;
 | |
| };
 | |
| struct SA8 {
 | |
|     array<SA7, 2> x;
 | |
| };
 | |
| struct Inputs {
 | |
|     S8 s8;
 | |
|     array<SA8, 2> sa8;
 | |
| };
 | |
| struct Outputs {
 | |
|     half4 sk_FragColor [[color(0)]];
 | |
| };
 |