X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=builtin_data%2F_builtin.glsl;h=51035d32478466f8642c0a21a8963c9156781c75;hb=30c7ba8f7fd08c13562c86bf651bdc3ec8d30ab5;hp=b671f944df83da4960a5809fc4b28ab4f07839ff;hpb=215d5bed27ad3de92557ae1b631695a036d29741;p=libs%2Fgl.git diff --git a/builtin_data/_builtin.glsl b/builtin_data/_builtin.glsl index b671f944..51035d32 100644 --- a/builtin_data/_builtin.glsl +++ b/builtin_data/_builtin.glsl @@ -41,6 +41,15 @@ typedef image(dimensions=cube, shadow, sampled) float samplerCubeShadow; typedef image(dimensions=cube[], shadow, sampled) float samplerCubeArrayShadow; typedef image(dimensions=2, sampled, multisample) float sampler2DMS; typedef image(dimensions=2[], sampled, multisample) float sampler2DMSArray; +typedef image(dimensions=1) float image1D; +typedef image(dimensions=2) float image2D; +typedef image(dimensions=3) float image3D; +typedef image(dimensions=cube) float imageCube; +typedef image(dimensions=1[]) float image1DArray; +typedef image(dimensions=2[]) float image2DArray; +typedef image(dimensions=cube[]) float imageCubeArray; +typedef image(dimensions=2, multisample) float image2DMS; +typedef image(dimensions=2[], multisample) float image2DMSArray; const float PI = 3.1415926535; @@ -532,6 +541,35 @@ vec4 texelFetch(sampler1DArray sampler, ivec2 P, int lod); vec4 texelFetch(sampler2DArray sampler, ivec3 P, int lod); vec4 texelFetch(sampler2DMS sampler, ivec2 P, int sample); vec4 texelFetch(sampler2DMSArray sampler, ivec3 P, int sample); +int imageSize(image1D image); +ivec2 imageSize(image2D image); +ivec3 imageSize(image3D image); +ivec2 imageSize(image1DArray image); +ivec3 imageSize(image2DArray image); +ivec2 imageSize(imageCube image); +ivec3 imageSize(imageCubeArray image); +ivec2 imageSize(image2DMS image); +ivec3 imageSize(image2DMSArray image); +int imageSamples(image2DMS image); +int imageSamples(image2DMSArray image); +vec4 imageLoad(image1D image, int P); +vec4 imageLoad(image2D image, ivec2 P); +vec4 imageLoad(image3D image, ivec3 P); +vec4 imageLoad(image1DArray image, ivec2 P); +vec4 imageLoad(image2DArray image, ivec3 P); +vec4 imageLoad(imageCube image, ivec3 P); +vec4 imageLoad(imageCubeArray image, ivec4 P); +vec4 imageLoad(image2DMS image, ivec2 P, int sample); +vec4 imageLoad(image2DMSArray image, ivec3 P, int sample); +void imageStore(image1D image, int P, vec4 data); +void imageStore(image2D image, ivec2 P, vec4 data); +void imageStore(image3D image, ivec3 P, vec4 data); +void imageStore(image1DArray image, ivec2 P, vec4 data); +void imageStore(image2DArray image, ivec3 P, vec4 data); +void imageStore(imageCube image, ivec3 P, vec4 data); +void imageStore(imageCubeArray image, ivec4 P, vec4 data); +void imageStore(image2DMS image, ivec2 P, int sample, vec4 data); +void imageStore(image2DMSArray image, ivec3 P, int sample, vec4 data); // END BUILTIN FUNCTIONS #pragma MSP stage(vertex) @@ -626,3 +664,10 @@ in int gl_SampleID; in vec2 gl_SamplePosition; in int gl_Layer; out float gl_FragDepth; + +#pragma MSP stage(compute) +in uvec3 gl_NumWorkGroups; +in uvec3 gl_WorkGroupID; +in uvec3 gl_LocalInvocationID; +in uvec3 gl_GlobalInvocationID; +in uint gl_LocalInvocationIndex;