#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 | |
} |