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