mirror of
https://github.com/libretro/glslang.git
synced 2024-11-27 18:00:49 +00:00
39374dadb5
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31212 e7fa87d3-cd2b-0410-9028-fcbf551c1848
38 lines
885 B
Plaintext
38 lines
885 B
Plaintext
#version 310 es
|
|
|
|
precision highp float;
|
|
|
|
layout (local_size_x = 16, local_size_y = 32, local_size_z = 4) in;
|
|
|
|
shared float s;
|
|
shared int i;
|
|
|
|
buffer outb {
|
|
float f;
|
|
float g;
|
|
float h;
|
|
vec3 uns[]; // this makes it look like the "second" set of 3 floats in a struct, which LLVM
|
|
// takes advantage of when optimizing, giving confusing results, like thinking
|
|
// &outbname.uns[18].x == &outbname[9].uns.x
|
|
} outbname;
|
|
|
|
buffer outbna {
|
|
int k;
|
|
vec4 na;
|
|
} outbnamena;
|
|
|
|
buffer outs {
|
|
vec4 va[];
|
|
} outnames;
|
|
|
|
void main()
|
|
{
|
|
barrier();
|
|
outbname.f = s;
|
|
outbnamena.na = vec4(s);
|
|
s = outbname.uns[18].x; // TODO: see note above
|
|
//outbname.uns[17] = vec3(3.0); // TODO: see note above, this one bitcasts, which isn't handled
|
|
outbname.uns[i] = vec3(s);
|
|
outnames.va[gl_LocalInvocationID.x] = vec4(s);
|
|
}
|