77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 450
 | |
| 
 | |
| // should get 3 SPV types for S: no layout, 140, and 430, plus extras for interpolation or invariant differences
 | |
| struct S
 | |
| {
 | |
| 	highp uvec3 a;
 | |
| 	mediump mat2 b[4];
 | |
| 	lowp uint c;
 | |
| };
 | |
| 
 | |
| layout(set = 0, binding = 0, std140) uniform Block140
 | |
| {
 | |
| 	mediump int u;
 | |
| 	S s[2][3];
 | |
| 	mediump vec2 v;
 | |
| } inst140;
 | |
| 
 | |
| layout(set = 0, binding = 1, std430) buffer Block430
 | |
| {
 | |
| 	mediump int u;
 | |
| 	S s[2][3];
 | |
| 	mediump vec2 v;
 | |
| } inst430;
 | |
| 
 | |
| S s;
 | |
| 
 | |
| // should get 5 SPV types for T: no layout, 140/row, 140/col, 430/row, and 430/col
 | |
| struct T {
 | |
|     mat2 m;
 | |
|     int a;
 | |
| };
 | |
| 
 | |
| T t;
 | |
| 
 | |
| struct Nestor {
 | |
|     T nestorT;
 | |
| };
 | |
| 
 | |
| layout(set = 1, binding = 0, std140) uniform Bt1
 | |
| {
 | |
|     layout(row_major) Nestor nt;
 | |
| } Btn1;
 | |
| 
 | |
| layout(set = 1, binding = 0, std140) uniform Bt2
 | |
| {
 | |
|     layout(column_major) Nestor nt;
 | |
| } Btn2;
 | |
| 
 | |
| layout(row_major, set = 1, binding = 0, std140) uniform Bt3
 | |
| {
 | |
|     layout(column_major) Nestor ntcol;
 | |
|     Nestor ntrow;                         // should be row major decoration version of Nestor
 | |
| } Btn3;
 | |
| 
 | |
| layout(set = 1, binding = 0, std430) buffer bBt1
 | |
| {
 | |
|     layout(row_major) Nestor nt;
 | |
| } bBtn1;
 | |
| 
 | |
| layout(set = 1, binding = 0, std430) buffer bBt2
 | |
| {
 | |
|     layout(column_major) Nestor nt;
 | |
| } bBtn2;
 | |
| 
 | |
| layout(set = 1, binding = 0, std430) buffer bBt3
 | |
| {
 | |
|     layout(row_major) Nestor ntcol;
 | |
|     Nestor ntrow;                         // should be col major decoration version of Nestor
 | |
| } bBtn3;
 | |
| 
 | |
| void main()
 | |
| {
 | |
| }
 | |
| 
 | |
| flat out S sout;
 | |
| invariant out S soutinv;
 | 
