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;
 |