| #version 450 core | |
| buffer bn { | |
| int a[]; | |
| float b[]; | |
| } buf; | |
| uniform un { | |
| int a[]; | |
| float b[]; | |
| } ubuf; | |
| buffer bna { | |
| int a[]; | |
| float b[]; | |
| } bufa[4]; | |
| uniform una { | |
| int a[]; | |
| float b[]; | |
| } ubufa[4]; | |
| buffer abn { | |
| int aba[]; | |
| float abb[]; | |
| }; | |
| uniform aun { | |
| int aua[]; | |
| float aub[]; | |
| }; | |
| layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[]; | |
| layout(binding=2, r32f) uniform imageBuffer storageTexelBufferDyn[]; | |
| layout(binding=3) uniform uname { float a; } uniformBuffer[]; | |
| layout(binding=4) buffer bname { float b; } storageBuffer[]; | |
| layout(binding=5) uniform sampler2D sampledImage[]; | |
| layout(binding=6, r32f) uniform image2D storageImage[]; | |
| layout(binding=8) uniform samplerBuffer uniformTexelBuffer[]; | |
| layout(binding=9, r32f) uniform imageBuffer storageTexelBuffer[]; | |
| int i; | |
| void main() | |
| { | |
| ubuf.a[3]; | |
| ubuf.b[3]; | |
| buf.a[3]; | |
| buf.b[3]; | |
| ubufa[3].a[3]; | |
| ubufa[3].b[3]; | |
| bufa[3].a[3]; | |
| bufa[3].b[3]; | |
| aua[3]; | |
| aub[3]; | |
| aba[3]; | |
| abb[3]; | |
| ubuf.a[i]; // ERROR | |
| ubuf.b[i]; // ERROR | |
| buf.a[i]; // ERROR | |
| buf.b[i]; | |
| ubuf.a.length(); // ERROR | |
| ubuf.b.length(); // ERROR | |
| buf.a.length(); // ERROR | |
| buf.b.length(); | |
| ubufa[1].a[i]; // ERROR | |
| ubufa[1].b[i]; // ERROR | |
| bufa[1].a[i]; // ERROR | |
| bufa[1].b[i]; | |
| ubufa[1].a.length(); // ERROR | |
| ubufa[1].b.length(); // ERROR | |
| bufa[1].a.length(); // ERROR | |
| bufa[1].b.length(); | |
| aua[i]; // ERROR | |
| aub[i]; // ERROR | |
| aba[i]; // ERROR | |
| abb[i]; | |
| aua.length(); // ERROR | |
| aub.length(); // ERROR | |
| aba.length(); // ERROR | |
| abb.length(); | |
| uniformTexelBufferDyn[1]; | |
| storageTexelBufferDyn[1]; | |
| uniformBuffer[1]; | |
| storageBuffer[1]; | |
| sampledImage[1]; | |
| storageImage[1]; | |
| uniformTexelBuffer[1]; | |
| storageTexelBuffer[1]; | |
| uniformTexelBufferDyn[i]; // ERROR, need extension | |
| storageTexelBufferDyn[i]; // ERROR, need extension | |
| uniformBuffer[i]; // ERROR, need extension | |
| storageBuffer[i]; // ERROR, need extension | |
| sampledImage[i]; // ERROR, need extension | |
| storageImage[i]; // ERROR, need extension | |
| uniformTexelBuffer[i]; // ERROR, need extension | |
| storageTexelBuffer[i]; // ERROR, need extension | |
| float local[] = ubuf.b; // ERROR, can initialize with runtime-sized array | |
| } |