X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=builtin_data%2F_builtin.glsl;h=51035d32478466f8642c0a21a8963c9156781c75;hb=30c7ba8f7fd08c13562c86bf651bdc3ec8d30ab5;hp=c8336d9a18e12f05dc3a468023fecd7747e0d7fb;hpb=e0caeb9be47bc140978552bb7149f1c9c8c973db;p=libs%2Fgl.git diff --git a/builtin_data/_builtin.glsl b/builtin_data/_builtin.glsl index c8336d9a..51035d32 100644 --- a/builtin_data/_builtin.glsl +++ b/builtin_data/_builtin.glsl @@ -39,6 +39,19 @@ typedef image(dimensions=1[], shadow, sampled) float sampler1DArrayShadow; typedef image(dimensions=2[], shadow, sampled) float sampler2DArrayShadow; 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; // BEGIN BUILTIN FUNCTIONS float radians(float degrees); @@ -471,6 +484,8 @@ ivec2 textureSize(samplerCubeShadow sampler, int lod); ivec2 textureSize(sampler1DArrayShadow sampler, int lod); ivec3 textureSize(sampler2DArrayShadow sampler, int lod); ivec3 textureSize(samplerCubeArrayShadow sampler, int lod); +ivec2 textureSize(sampler2DMS sampler, int lod); +ivec3 textureSize(sampler2DMSArray sampler, int lod); vec2 textureQueryLod(sampler1D sampler, float P); vec2 textureQueryLod(sampler2D sampler, vec2 P); vec2 textureQueryLod(sampler3D sampler, vec3 P); @@ -497,6 +512,8 @@ int textureQueryLevels(samplerCubeShadow sampler); int textureQueryLevels(sampler1DArrayShadow sampler); int textureQueryLevels(sampler2DArrayShadow sampler); int textureQueryLevels(samplerCubeArrayShadow sampler); +int textureSamples(sampler2DMS sampler); +int textureSamples(sampler2DMSArray sampler); vec4 texture(sampler1D sampler, float P); vec4 texture(sampler2D sampler, vec2 P); vec4 texture(sampler3D sampler, vec3 P); @@ -522,6 +539,37 @@ vec4 texelFetch(sampler2D sampler, ivec2 P, int lod); vec4 texelFetch(sampler3D sampler, ivec3 P, int lod); 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) @@ -616,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;