Vari Reference Documentation
This is the documentation for the Vari language. For the reference documentation for Varjo (the compiler that turns Vari into GLSL) please see here
All text in the various definitions that follow a heading that states "GLSL Documentation" is from the official GLSL documentation and copyright Khronos Group as stated in the following:
Copyright © 20112014 Khronos Group. This material may be distributed subject
to the terms and conditions set forth in the Open Publication License, v 1.0, 8
June 1999. http://opencontent.org/openpub/.
Copyright
varjo is licensed under the BSD 2 Clause license. © Chris Bagley (Baggers) <techsnuffle@gmail.com> . Package Index


GLCLIPDISTANCE
Type:
(:FLOAT *)
Official GLSL Documentaion:
Name
gl_ClipDistance — provides a forwardcompatible mechanism for vertex clipping
Description
The gl_ClipDistance variable provides a forward compatible mechanism for
controlling user clipping. The element gl_ClipDistance[i] specifies a clip
distance for each user clip plane i. A distance of 0.0 means that the vertex is
on the plane, a positive distance means that the vertex is insider the clip
plane, and a negative distance means that the point is outside the clip plane.
The clip distances will be linearly interpolated across the primitive and the
portion of the primitive with interpolated distances less than 0.0 will be
clipped.
The gl_ClipDistance array is initially predeclared as unsized and must be sized
by the shader either by redeclaring it with an explicit size, or by indexing it
with only integral constant expressions. The array must be sized to include all
clip planes that are enabled via the OpenGL API; if the size does not include
all enabled planes, results are undefined. The size may be at most
gl_MaxClipDistances. The number of varying components consumed by
gl_ClipDistance will match the size of the array, no matter how many planes are
enabled. The shader must also set all values in gl_ClipDistance that have been
enabled via the OpenGL API, or results are undefined. Values written into
gl_ClipDistance planes that are not enabled have no effect.
In the vertex, tessellation evaluation and geometry languages, a single global
instance of the gl_PerVertex named block is available and its gl_ClipDistance
member is an output that receives the clip distances for the current vertex. It
may be written at any time during shader execution. The value written to
gl_ClipDistance will be used by primitive assembly, clipping, culling and other
fixed functionality operations, if present, that operate on primitives after
vertex processing has occurred.
In the tessellation control language, the gl_PerVertex named block is used to
construct an array, gl_out[], whose gl_ClipDistance members hold clip distances
for each of the control points, which become available as inputs to the
subsequent tessellation evaluation shader.
The value of gl_ClipDistance (or the gl_ClipDistance member of the gl_out[]
array, in the case of the tessellation control shader) is undefined after the
vertex, tessellation control, and tessellation evaluation shading stages if the
corresponding shader executable does not write to gl_ClipDistance. It is also
undefined after the geometry processing stage if the geometry shader executable
calls EmitVertex without having written gl_ClipDistance since the last call to
EmitVertex (or hasn't written it at all).
In the tessellation control, tessellation evaluation and geoemetry languages,
the gl_PerVertex named block is used to construct an array, gl_in[] of
pervertex or percontrol point inputs whose content represents the
corresponding outputs written by the previous stage. Only elements of the
gl_ClipDistance array that correspond to enabled clip planes have defined
values.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_ClipDistance   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Versions 1.30 to 1.40  vertex shader only.
Versions 1.50 to 3.30  vertex and geometry shaders only.
Copyright © 20112014 Khronos Group

GLFRAGCOORD
Type:
:VEC4
Official GLSL Documentaion:
Name
gl_FragCoord — contains the windowrelative coordinates of the current fragment
Description
Available only in the fragment language, gl_FragCoord is an input variable that
contains the window relative coordinate (x, y, z, 1/w) values for the fragment.
If multisampling, this value can be for any location within the pixel, or one
of the fragment samples. This value is the result of fixed functionality that
interpolates primitives after vertex processing to generate fragments. The z
component is the depth value that would be used for the fragment's depth if no
shader contained any writes to gl_FragDepth.
gl_FragCoord may be redeclared with the additional layout qualifier identifiers
origin_upper_left or pixel_center_integer. By default, gl_FragCoord assumes a
lowerleft origin for window coordinates and assumes pixel centers are located
at halfpixel centers. For example, the (x, y) location (0.5, 0.5) is returned
for the lowerleftmost pixel in a window. The origin of gl_FragCoord may be
changed by redeclaring gl_FragCoord with the origin_upper_left identifier. The
values returned can also be shifted by half a pixel in both x and y by
pixel_center_integer so it appears the pixels are centered at whole number
pixel offsets. This moves the (x, y) value returned by gl_FragCoord of (0.5,
0.5) by default to (0.0, 0.0) with pixel_center_integer.
If gl_FragCoord is redeclared in any fragment shader in a program, it must be
redeclared in all fragment shaders in that program that have static use of
gl_FragCoord. Redeclaring gl_FragCoord with any accepted qualifier affects only
gl_FragCoord.x and gl_FragCoord.y. It has no affect on rasterization,
transformation or any other part of the OpenGL pipline or language features.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_FragCoord ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLFRAGDEPTH
Type:
:FLOAT
Official GLSL Documentaion:
Name
gl_FragDepth — establishes a depth value for the current fragment
Description
Available only in the fragment language, gl_FragDepth is an output variable
that is used to establish the depth value for the current fragment. If depth
buffering is enabled and no shader writes to gl_FragDepth, then the fixed
function value for depth will be used (this value is contained in the z
component of gl_FragCoord) otherwise, the value written to gl_FragDepth is
used. If a shader statically assigns to gl_FragDepth, then the value of the
fragment's depth may be undefined for executions of the shader that don't take
that path. That is, if the set of linked fragment shaders statically contain a
write to gl_FragDepth, then it is responsible for always writing it.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_FragDepth ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLFRONTFACING
Type:
:BOOL
Official GLSL Documentaion:
Name
gl_FrontFacing — indicates whether a primitive is front or back facing
Description
Available only in the fragment language, gl_FrontFacing is an input variable
whose value is true if the fragment belongs to a frontfacing primitive and
false otherwise. The determination of whether a triangle primitive is
frontfacing is made by examining the sign of the area of the triangle,
including a possible reversal of this sign as controlled by glFrontFace. One
way to compute this area is:
a=12 ∑ j=0 n1 x w i y w i+1  x w i+1 y w i
where x w i and y w i are the x and y window coordinates of the ith vertex of
the nvertex polygon.
The sign of this computation is negated when the value of GL_CLIP_ORIGIN (the
clip volume origin, set with glClipControl) is GL_UPPER_LEFT.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_FrontFacing ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLGLOBALINVOCATIONID
Type:
:UVEC3
Official GLSL Documentaion:
Name
gl_GlobalInvocationID — contains the global index of work item currently being
operated on by a compute shader
Description
In the compute language, gl_GlobalInvocationID is a derived input variable
containing the ndimensional index of the work invocation within the global
work group that the current shader is executing on. The value of
gl_GlobalInvocationID is equal to gl_WorkGroupID * gl_WorkGroupSize +
gl_LocalInvocationID.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_GlobalInvocationID          ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLHELPERINVOCATION
Type:
:BOOL
Official GLSL Documentaion:
Name
gl_HelperInvocation — indicates whether a fragment shader invocation is a
helper invocation
Description
The value gl_HelperInvocation is true if the fragment shader invocation is
considered a helper invocation and is false otherwise. A helper invocation is a
fragmentshader invocation that is created solely for the purposes of
evaluating derivatives for use in nonhelper fragmentshader invocations. Such
derivatives are computed implicitly in the builtin function texture(), and
explicitly in the derivative functions dFdx() and dFdy.
Fragment shader helper invocations execute the same shader code as nonhelper
invocations, but will not have side effects that modify the framebuffer or
other shaderaccessible memory. In particular:
• Fragments corresponding to helper invocations are discarded when shader
execution is complete, without updating the framebuffer.
• Stores to image and buffer variables performed by helper invocations have
no effect on the underlying image or buffer memory.
• Atomic operations to image, buffer, or atomic counter variables performed
by helper invocations have no effect on the underlying image or buffer
memory. The values returned by such atomic operations are undefined.
Helper invocations may be generated for pixels not covered by a primitive being
rendered. While fragment shader inputs qualified with centroid are normally
required to be sampled in the intersection of the pixel and the primitive, the
requirement is ignored for such pixels since there is no intersection between
the pixel and primitive.
Helper invocations may also be generated for fragments that are covered by a
primitive being rendered when the fragment is killed by early fragment tests
(using the early_fragment_tests qualifier) or where the implementation is able
to determine that executing the fragment shader would have no effect other than
assisting in computing derivatives for other fragment shader invocations.
The set of helper invocations generated when processing any set of primitives
is implementation dependent.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_HelperInvocation            ✔
Copyright © 20112014 Khronos Group

GLINSTANCEID
Type:
:INT32
Official GLSL Documentaion:
Name
gl_InstanceID — contains the index of the current primitive in an instanced
draw command
Description
gl_InstanceID is a vertex language input variable that holds the integer index
of the current primitive in an instanced draw command such as
glDrawArraysInstanced. If the current primitive does not originate from an
instanced draw command, the value of gl_InstanceID is zero.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_InstanceID    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLINVOCATIONID
Type:
:INT32
Official GLSL Documentaion:
Name
gl_InvocationID — contains the invocation index of the current shader
Description
In the tessellation control language, gl_InvocationID contains the index of the
output patch vertex assigned to the shader invocation. It is assigned an
integer value in the range [0, N1] where N is the number of output patch
vertices.
In the geometry language, gl_InvocationID identifies the invocation number
assigned to the geometry shader invocation. It is assigned an integer value in
the range [0, N1] where N is the number of geometry shader invocations per
primitive.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_InvocationID     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
[1] Versions 1.50 to 3.30  geometry shaders only.
Copyright © 20112014 Khronos Group

GLLAYER
Type:
:INT32
Official GLSL Documentaion:
Name
gl_Layer — contains the selected layer of a multilayer framebuffer attachment
Description
In the geometry language, gl_Layer is used to select a specific layer (or face
and layer of cube map) in a multilayer framebuffer attachment. The actual
layer used will come from one of the vertices in the primitive being shaded.
Which vertex the layer comes from is undefined and as such it is recommended to
write the same value to gl_Layer for all vertices in the primitive. If a shader
statically assigns a value to gl_Layer, layered rendering mode is enabled. If a
shader statically assigns a value to gl_Layer, and there is an execution path
through the shader that does not set gl_Layer, then the value of gl_Layer is
undefined for invocations of the shader that take that path.
When used with an array of cube map textures, the gl_Layer output variable
takes on a special value. Instead of referring to only the layer, it is used to
select a cube map face and a layer. Setting gl_Layer to the value layer*6+face
will render to face of the cube defined in layer. The face values are as
follows:
Face Value Resulting Target
0 GL_TEXTURE_CUBEMAP_POSITIVE_X
1 GL_TEXTURE_CUBEMAP_NEGATIVE_X
2 GL_TEXTURE_CUBEMAP_POSITIVE_Y
3 GL_TEXTURE_CUBEMAP_NEGATIVE_Y
4 GL_TEXTURE_CUBEMAP_POSITIVE_Z
5 GL_TEXTURE_CUBEMAP_NEGATIVE_Z
For example, to render to the positive y cube map face located in the 5^th
layer of the cube map array, gl_Layer should be set to 5*6+2.
The input variable gl_Layer in the fragment language will have the same value
that was written to the output variable gl_Layer in the geometry language. If
the geometry stage does not dynamically assign a value to gl_Layer, the value
of gl_Layer in the fragment stage will be undefined. If the geometry stage
makes no static assignment to gl_Layer, the input gl_Layer in the fragment
stage will be zero. Otherwise, the fragment stage will read the same value
written by the geometry stage, even if that value is out of range. If a
fragment shader contains a static access to gl_Layer, it will count against the
implementation defined limit for the maximum number of inputs to the fragment
stage.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_Layer (geometry     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
stage)
gl_Layer (fragment          ✔ ✔ ✔
stage)
Copyright © 20112014 Khronos Group

GLLOCALINVOCATIONID
Type:
:UVEC3
Official GLSL Documentaion:
Name
gl_LocalInvocationID — contains the index of work item currently being operated
on by a compute shader
Description
In the compute language, gl_LocalInvocationID is an input variable containing
the ndimensional index of the local work invocation within the work group that
the current shader is executing in. The possible values for this variable range
across the local work group size, i.e., (0,0,0) to (gl_WorkGroupSize.x  1,
gl_WorkGroupSize.y  1, gl_WorkGroupSize.z  1).
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_LocalInvocationID          ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLLOCALINVOCATIONINDEX
Type:
:UINT32
Official GLSL Documentaion:
Name
gl_LocalInvocationIndex — contains the local linear index of work item
currently being operated on by a compute shader
Description
In the compute language, gl_LocalInvocationIndex is a derived input variable
containing the 1dimensional linearized index of the work invocation within the
work group that the current shader is executing on. The value of
gl_LocalInvocationIndex is equal to gl_LocalInvocationID.z * gl_WorkGroupSize.x
* gl_WorkGroupSize.y + gl_LocalInvocationID.y * gl_WorkGroupSize.x +
gl_LocalInvocationID.x.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_LocalInvocationIndex          ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLNUMSAMPLES
Type:
:BOOL
Official GLSL Documentaion:
Name
gl_NumSamples — contains the total number of samples in the framebuffer
Description
gl_NumSamples is a fragment language input variable that contains the number of
samples in the framebuffer, or 1 if rendering to a nonmultisample framebuffer.
gl_NumSamples is the sample count of the framebuffer regardless of whether
multisample rasterization is enabled or not.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_NumSamples       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLNUMWORKGROUPS
Type:
:UVEC3
Official GLSL Documentaion:
Name
gl_NumWorkGroups — contains the number of workgroups that have been dispatched
to a compute shader
Description
In the compute language, gl_NumWorkGroups contains the total number of work
groups that will execute the compute shader. The components of gl_NumWorkGroups
are equal to the num_groups_x, num_groups_y, and num_groups_z parameters passed
to the glDispatchCompute command.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_NumWorkGroups          ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLPATCHVERTICESIN
Type:
:INT32
Official GLSL Documentaion:
Name
gl_PatchVerticesIn — contains the number of vertices in the current patch
Description
Available only in the tessellation control and evaluation languages,
gl_PatchVerticesIn contains the number of vertices in the input being processed
by the shader. A single tessellation control or evaluation shader can read
patches of differing sizes, and so th value of gl_PatchVertexIn may differ
between patches.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_PatchVerticesIn       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLPOINTCOORD
Type:
:VEC2
Official GLSL Documentaion:
Name
gl_PointCoord — contains the coordinate of a fragment within a point
Description
gl_PointCoord is a fragment language input variable that contains the
twodimensional coordinates indicating where within a point primitive the
current fragment is located. If the current primitive is not a point, then
values read from gl_PointCoord are undefined.
gl_PointCoord.s ranges from 0.0 to 1.0 across the point horizontally from left
to right. If GL_POINT_SPRITE_COORD_ORIGIN is GL_LOWER_LEFT, gl_PointCoord.t
varies from 0.0 to 1.0 vertically from bottom to top. Otherwise, if
GL_POINT_SPRITE_COORD_ORIGIN is GL_UPPER_LEFT then gl_PointCoord.t varies from
0.0 to 1.0 vertically from top to bottom. The default value of
GL_POINT_SPRITE_COORD_ORIGIN is GL_UPPER_LEFT.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_PointCoord ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLPOINTSIZE
Type:
:FLOAT
Official GLSL Documentaion:
Name
gl_PointSize — contains size of rasterized points, in pixels
Description
In the vertex, tessellation evaluation and geometry languages, a single global
instance of the gl_PerVertex named block is available and its gl_PointSize
member is an output that receives the intended size of the point to be
rasterized, in pixels. It may be written at any time during shader execution.
If GL_PROGRAM_POINT_SIZE is enabled, gl_PointSize is used to determine the size
of rasterized points, otherwise it is ignored by the rasterization stage.
In the tessellation control language, the gl_PerVertex named block is used to
construct an array, gl_out[], whose members become available as inputs to the
subsequent tessellation evaluation shader.
The value of gl_PointSize (or the gl_PointSize member of the gl_out[] array, in
the case of the tessellation control shader) is undefined after the vertex,
tessellation control, and tessellation evaluation shading stages if the
corresponding shader executable does not write to gl_PointSize. It is also
undefined after the geometry processing stage if the geometry shader executable
calls EmitVertex without having written gl_PointSize since the last call to
EmitVertex (or hasn't written it at all).
In the tessellation control, tessellation evaluation and geometry languages,
the gl_PerVertex named block is used to construct an array, gl_in[] of
pervertex or percontrol point inputs whose content represents the
corresponding outputs written by the previous stage.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_PointSize (vertex ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
shader)
gl_PointSize     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(geometry shader)
gl_PointSize
(tessellation       ✔ ✔ ✔ ✔ ✔ ✔
evaluation shader)
Copyright © 20112014 Khronos Group

GLPOSITION
Type:
:VEC4
Official GLSL Documentaion:
Name
gl_Position — contains the position of the current vertex
Description
In the vertex, tessellation evaluation and geometry languages, a single global
instance of the gl_PerVertex named block is available and its gl_Position
member is an output that receives the homogeneous vertex position. It may be
written at any time during shader execution. The value written to gl_Position
will be used by primitive assembly, clipping, culling and other fixed
functionality operations, if present, that operate on primitives after vertex
processing has occurred.
In the tessellation control language, the gl_PerVertex named block is used to
construct an array, gl_out[], whose gl_Position members hold the homogeneous
control point position, which become available as inputs to the subsequent
tessellation evaluation shader.
The value of gl_Position (or the gl_Position member of the gl_out[] array, in
the case of the tessellation control shader) is undefined after the vertex,
tessellation control, and tessellation evaluation shading stages if the
corresponding shader executable does not write to gl_Position. It is also
undefined after the geometry processing stage if the geometry shader executable
calls EmitVertex without having written gl_Position since the last call to
EmitVertex (or hasn't written it at all).
In the tessellation control, tessellation evaluation and geometry languages,
the gl_PerVertex named block is used to construct an array, gl_in[] of
pervertex or percontrol point inputs whose content represents the
corresponding outputs written by the previous stage.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_Position ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Versions 1.10 to 1.40  vertex shader only.
Versions 1.50 to 3.30  vertex and geometry shaders only.
Copyright © 20112014 Khronos Group

GLPRIMITIVEID
Type:
:INT32
Official GLSL Documentaion:
Name
gl_PrimitiveID — contains the index of the current primitive
Description
gl_PrimitiveID is a tessellation control, tessellation evaluation and fragment
language input variable. For the tessellation control and tessellation
evaluation languages, it holds the number of primitives processed by the shader
since the current set of rendering primitives was started. The first primitive
processed by the drawing command is numbered zero and the primitive ID counter
is incremented after every individual point, line or triangle primitive is
processed. For triangles drawn in point or line mode, the primitive ID counter
is incremented only once, even through multiple points or lines may actually be
drawn. Restarting a primitive topology using the primitive restart index has no
effect on the primitive ID counter.
In the geometry language, gl_PrimitiveID is an output variable that is passed
to the corresponding gl_PrimitiveID input variable in the fragment shader. If
no geomery shader is present then gl_PrimitiveID in the fragment language
behaves identically as it would in the tessellation control and evaluation
languages. If a geometry shader is present but does not write to
gl_PrimitiveID, the value of gl_PrimitiveID in the fragment shader is
undefined.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_PrimitiveID
(Fragment and     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Geometry Languages)
gl_PrimitiveID
(Tessellation
Control and       ✔ ✔ ✔ ✔ ✔ ✔
Evaluation
Languages)
Copyright © 20112014 Khronos Group

GLPRIMITIVEIDIN
Type:
:INT32
Official GLSL Documentaion:
Name
gl_PrimitiveIDIn — contains the index of the current primitive
Description
gl_PrimitiveIDIn is a geometry language input variable that holds the number of
primitives processed by the shader since the current set of rendering
primitives was started. The first primitive processed by the drawing command is
numbered zero and the primitive ID counter is incremented after every
individual point, line or triangle primitive is processed. For triangles drawn
in point or line mode, the primitive ID counter is incremented only once, even
through multiple points or lines may actually be drawn. Restarting a primitive
topology using the primitive restart index has no effect on the primitive ID
counter.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_PrimitiveIDIn     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLSAMPLEID
Type:
:INT32
Official GLSL Documentaion:
Name
gl_SampleID — contains the index of the sample currently being processed
Description
gl_SampleID is a fragment language input variable that contains the index of
the sample currently being processed. This variable is in the range 0 to
gl_NumSamples  1, where gl_NumSamples is the total number of samples in each
fragment for the current framebuffer (and thus 1 if rendering to a
nonmultisample buffer). Any static use of this variable in a fragment shader
causes the entire shader to be evaluated persample rather than perfragment.
When rendering to a nonmultisample buffer, or if multisample rasterization is
disabled, gl_SampleID will always be zero. gl_NumSamples is the sample count of
the framebuffer regardless of whether multisample rasterization is enabled or
not.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_SampleID       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLSAMPLEMASK
Type:
:INT32
Official GLSL Documentaion:
Name
gl_SampleMask — specifies the sample coverage mask for the current fragment
Description
gl_SampleMask is a fragment language output array that may be used to set the
sample mask for the fragment being processed. Coverage for the current fragment
will become the logical AND of the coverage mask and the output gl_SampleMask.
That is, setting a bit in gl_SampleMask to zero will cause the corresponding
sample to be considered uncovered for the purposes of multisample fragment
operations. However, setting sample mask bits back to one will never enable
samples not covered by the original primitive. Bit B of mask gl_SampleMask[M]
corresponds to sample 32 * M + B. This array must be sized in the fragment
shader either implicitly or explicitly to be the same size as the
implementationdependent maximum samplemask (as an array of 32bit elements),
determined by the maximum number of samples. If the fragment shader statically
assigns a value to gl_SampleMask, the sample mask will be undefined for any
array elements of any fragment shader invocation that fails to assign a value.
If a shader does not statically assign a value to gl_SampleMask, the sample
mask has no effect on the processing of a fragment. If the fragment shader is
being evaluated at any frequency other than perfragment, bits within the
sample mask not corresponding to the current fragment shader invocation are
ignored.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_SampleMask       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLSAMPLEMASKIN
Type:
:INT32
Official GLSL Documentaion:
Name
gl_SampleMaskIn — contains the computed sample coverage mask for the current
fragment
Description
gl_SampleMaskIn is a fragment language that indicates the set of samples
covered by the primitive generating the fragment during multisample
rasterization. It has a sample bit set if and only if the sample is considered
covered for this fragment shader invocation. Bit B of mask gl_SampleMask[M]
corresponds to sample 32 * M + B. The array has ceil(s / 32) elements where s
is the maximum number of color samples supported by the implementation.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_SampleMaskIn       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLSAMPLEPOSITION
Type:
:VEC2
Official GLSL Documentaion:
Name
gl_SamplePosition — contains the location of the current sample within the
current fragment
Description
gl_SamplePosition is a fragment language input variable that contains the
location within a fragment of the sample currently being processed. The x and y
components of gl_SamplePosition contain the subpixel coordinate of the current
sample and will have values in the range 0.0 to 1.0. The subpixel coordinates
of the center of the pixel are always (0.5, 0.5). Any static use of
gl_SamplePosition causes the entire fragment shader to be evaluated persample
rather than perfragment. When rendering to a nonmultisample buffer, or if
multisample rasterization is disabled, gl_SamplePosition will be (0.5, 0.5).
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_SamplePosition       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLTESSCOORD
Type:
:VEC3
Official GLSL Documentaion:
Name
gl_TessCoord — contains the coordinate of the vertex within the current patch
Description
Available only in the tessellation cevaluation language, gl_TessCoord specifies
the three component (u, v, w) vector identifying the position of the vertex
being processed by the shader relative to the primitive being tessellated.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_TessCoord       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLTESSLEVELINNER
Type:
(:FLOAT *)
Official GLSL Documentaion:
Name
gl_TessLevelInner — contains the inner tessellation levels for the current
patch
Description
Available only in the tessellation control and evaluation languages,
gl_TessLevelInner is used to assign values to the corresponding inner
tesellation levels of the current patch. The values written into
gl_TessLevelInner by the tessellation control shader are used by the
tessellation primitive generator to control primitive tessellation and may be
read by the subsequent tessellation evaluation shader.
As inputs to the tessellation evaluation shader, gl_TessLevelInner contains the
values written by the tessellation control shader, if present. If no
tessellation control shader is present, it contains the default tessellation
level.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_TessLevelInner       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLTESSLEVELOUTER
Type:
(:FLOAT *)
Official GLSL Documentaion:
Name
gl_TessLevelOuter — contains the outer tessellation levels for the current
patch
Description
Available only in the tessellation control and evaluation languages,
gl_TessLevelOuter is used to assign values to the corresponding outer
tesellation levels of the current patch. The values written into
gl_TessLevelOuter by the tessellation control shader are used by the
tessellation primitive generator to control primitive tessellation and may be
read by the subsequent tessellation evaluation shader.
As inputs to the tessellation evaluation shader, gl_TessLevelOuter contains the
values written by the tessellation control shader, if present. If no
tessellation control shader is present, it contains the default tessellation
level.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_TessLevelOuter       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLVERTEXID
Type:
:INT32
Official GLSL Documentaion:
Name
gl_VertexID — contains the index of the current vertex
Description
gl_VertexID is a vertex language input variable that holds an integer index for
the vertex. The index is impliclty generated by glDrawArrays and other commands
that do not reference the content of the GL_ELEMENT_ARRAY_BUFFER, or explicitly
generated from the content of the GL_ELEMENT_ARRAY_BUFFER by commands such as
glDrawElements.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_VertexID ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLVIEWPORTINDEX
Type:
:INT32
Official GLSL Documentaion:
Name
gl_ViewportIndex — contains the index of the viewport to be used in viewport
transformation and scissoring
Description
In the geometry language, gl_ViewportIndex is used to specify the index of the
viewport to which the next primitive emitted from the shader should be drawn.
Primitives generated by the geometry shader will undergo viewport
transformation and scissor testing using the viewport transformation and
scissor rectangle selected by the value of gl_ViewportIndex. The viewport index
used will come from one of the vertices in the primitive being shaded. However,
which vertex the viewport index comes from is implementationdefined, and so it
is recommended to use the same viewport index for all vertices of a primitive.
If a geometry shader does not assign a value to gl_ViewportIndex, viewport
transform and scissor rectangle zero will be used. If a geometry shader
statically assigns a value to gl_ViewportIndex and there is a path through the
shader that does not assign a value to gl_ViewportIndex, the value of
gl_ViewportIndex is undefined for executions of the shader that take that path.
In the fragment language, gl_ViewportIndex will have the same value that was
written to the output variable gl_ViewportIndex in the geometry stage. If the
geometry stage does not dynamically assign to gl_ViewportIndex, the value of
gl_ViewportIndex in the fragment shader will be undefined. If the geometry
stage makes no static assignment to gl_ViewportIndex, the fragment stage will
read zero. Otherwise, the fragment stage will read the same value written by
the geometry stage, even if that value is out of range. If a fragment shader
contains a static access to gl_ViewportIndex, it will count against the
implementation defined limit for the maximum number of inputs to the fragment
stage.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_ViewportIndex     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(geometry stage)
gl_ViewportIndex          ✔ ✔ ✔
(fragment stage)
Copyright © 20112014 Khronos Group

GLWORKGROUPID
Type:
:UVEC3
Official GLSL Documentaion:
Name
gl_WorkGroupID — contains the index of the workgroup currently being operated
on by a compute shader
Description
In the compute language, gl_WorkGroupID contains the 3dimensional index of the
global work group that the current compute shader invocation is executing
within. The possible values range across the parameters passed into
glDispatchCompute, i.e., from (0, 0, 0) to (gl_NumWorkGroups.x  1,
gl_NumWorkGroups.y  1, gl_NumWorkGroups.z  1).
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_WorkGroupID          ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GLWORKGROUPSIZE
Type:
:UVEC3
Official GLSL Documentaion:
Name
gl_WorkGroupSize — contains the size of the workgroup operated on by a compute
shader
Description
In the compute language, gl_WorkGroupSize contains the size of a workgroup
declared by a compute shader. The size of the work group in the X, Y, and Z
dimensions is stored in the x, y, and z components of gl_WorkGroupSize. The
values stored in gl_WorkGroupSize match those specified in the required
local_size_x, local_size_y, and local_size_z layout qualifiers for the current
shader. This value is constant so that it can be used to size arrays of memory
that can be shared within the local work group.
Version Support
OpenGL Shading Language Version
Variable Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
gl_WorkGroupSize          ✔ ✔ ✔
Copyright © 20112014 Khronos Group


(
%PEEK
0 overloads
)
func 
<<
Overloads:
(VARI.GLSL:<< :IVEC4 :INT32)
(VARI.GLSL:<< :IVEC3 :INT32)
(VARI.GLSL:<< :IVEC2 :INT32)
(VARI.GLSL:<< :UVEC4 :UINT32)
(VARI.GLSL:<< :UVEC3 :UINT32)
(VARI.GLSL:<< :UVEC2 :UINT32)
(VARI.GLSL:<< :INT32 :IVEC4)
(VARI.GLSL:<< :INT32 :IVEC3)
(VARI.GLSL:<< :INT32 :IVEC2)
(VARI.GLSL:<< :UINT32 :UVEC4)
(VARI.GLSL:<< :UINT32 :UVEC3)
(VARI.GLSL:<< :UINT32 :UVEC2)
(VARI.GLSL:<< :IVEC4 :IVEC4)
(VARI.GLSL:<< :IVEC3 :IVEC3)
(VARI.GLSL:<< :IVEC2 :IVEC2)
(VARI.GLSL:<< :UVEC4 :UVEC4)
(VARI.GLSL:<< :UVEC3 :UVEC3)
(VARI.GLSL:<< :UVEC2 :UVEC2)
(VARI.GLSL:<< :INT32 :INT32)
(VARI.GLSL:<< :UINT32 :UINT32)

>>
Overloads:
(VARI.GLSL:>> :IVEC4 :INT32)
(VARI.GLSL:>> :IVEC3 :INT32)
(VARI.GLSL:>> :IVEC2 :INT32)
(VARI.GLSL:>> :UVEC4 :UINT32)
(VARI.GLSL:>> :UVEC3 :UINT32)
(VARI.GLSL:>> :UVEC2 :UINT32)
(VARI.GLSL:>> :INT32 :IVEC4)
(VARI.GLSL:>> :INT32 :IVEC3)
(VARI.GLSL:>> :INT32 :IVEC2)
(VARI.GLSL:>> :UINT32 :UVEC4)
(VARI.GLSL:>> :UINT32 :UVEC3)
(VARI.GLSL:>> :UINT32 :UVEC2)
(VARI.GLSL:>> :IVEC4 :IVEC4)
(VARI.GLSL:>> :IVEC3 :IVEC3)
(VARI.GLSL:>> :IVEC2 :IVEC2)
(VARI.GLSL:>> :UVEC4 :UVEC4)
(VARI.GLSL:>> :UVEC3 :UVEC3)
(VARI.GLSL:>> :UVEC2 :UVEC2)
(VARI.GLSL:>> :INT32 :INT32)
(VARI.GLSL:>> :UINT32 :UINT32)

(
ABS
20 overloads
)
func ABS
Overloads:
(ABS :DVEC4)
(ABS :DVEC3)
(ABS :DVEC2)
(ABS :DOUBLE)
(ABS :IVEC4)
(ABS :IVEC3)
(ABS :IVEC2)
(ABS :INT32)
(ABS :VEC4)
(ABS :VEC3)
(ABS :VEC2)
(ABS :FLOAT)
Official GLSL Documentaion:
Name
abs — return the absolute value of the parameter
Parameters
x
Specify the value of which to return the absolute.
Description
abs returns the absolute value of x.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
abs (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
abs (genIType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
abs (genDType)        ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
ACOS
4 overloads
)
func ACOS
Overloads:
(ACOS :VEC4)
(ACOS :VEC3)
(ACOS :VEC2)
(ACOS :FLOAT)
Official GLSL Documentaion:
Name
acos — return the arccosine of the parameter
Parameters
x
Specify the value whose arccosine to return.
Description
atan returns the angle whose trigonometric cosine is x. The range of values
returned by acos is 0 π . The result is undefined if x>1.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
acos ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
ACOSH
4 overloads
)
func ACOSH
Overloads:
(ACOSH :VEC4)
(ACOSH :VEC3)
(ACOSH :VEC2)
(ACOSH :FLOAT)
Official GLSL Documentaion:
Name
acosh — return the arc hyperbolic cosine of the parameter
Parameters
x
Specify the value whose arc hyperbolic cosine to return.
Description
acosh returns the arc hyperbolic cosine of x; the nonnegative inverse of cosh.
Results are undefined if x<1.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
acosh   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

ALL
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ALL :BVEC4)
(GLSLSYMBOLS.FUNCTIONS:ALL :BVEC3)
(GLSLSYMBOLS.FUNCTIONS:ALL :BVEC2)
Official GLSL Documentaion:
Name
all — check whether all elements of a boolean vector are true
Parameters
x
Specifies the vector to be tested for truth.
Description
all returns true if all elements of x are true and false otherwise. It is
functionally equivalent to:
bool all(bvec x) // bvec can be bvec2, bvec3 or bvec4
{
bool result = true;
int i;
for (i = 0; i < x.length(); ++i)
{
result &= x[i];
}
return result;
}
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
all ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

ALLINVOCATION
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ALLINVOCATION :BOOL)

ANY
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ANY :BVEC4)
(GLSLSYMBOLS.FUNCTIONS:ANY :BVEC3)
(GLSLSYMBOLS.FUNCTIONS:ANY :BVEC2)
Official GLSL Documentaion:
Name
any — check whether any element of a boolean vector is true
Parameters
x
Specifies the vector to be tested for truth.
Description
any returns true if any element of x is true and false otherwise. It is
functionally equivalent to:
bool any(bvec x) { // bvec can be bvec2, bvec3 or bvec4
bool result = false;
int i;
for (i = 0; i < x.length(); ++i) {
result = x[i];
}
return result;
}
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
any ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

ANYINVOCATION
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ANYINVOCATION :BOOL)

ANYINVOCATIONSEQUAL
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ANYINVOCATIONSEQUAL :BOOL)

(
ASIN
4 overloads
)
func ASIN
Overloads:
(ASIN :VEC4)
(ASIN :VEC3)
(ASIN :VEC2)
(ASIN :FLOAT)
Official GLSL Documentaion:
Name
asin — return the arcsine of the parameter
Parameters
x
Specify the value whose arcsine to return.
Description
atan returns the angle whose trigonometric sine is x. The range of values
returned by asin is − π 2 π 2 . The result is undefined if x>1.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
asin ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
ASINH
4 overloads
)
func ASINH
Overloads:
(ASINH :VEC4)
(ASINH :VEC3)
(ASINH :VEC2)
(ASINH :FLOAT)
Official GLSL Documentaion:
Name
asinh — return the arc hyperbolic sine of the parameter
Parameters
x
Specify the value whose arc hyperbolic sine to return.
Description
asinh returns the arc hyperbolic sine of x; the inverse of sinh.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
asinh   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
ATAN
8 overloads
)
func ATAN
Overloads:
(ATAN :VEC4)
(ATAN :VEC3)
(ATAN :VEC2)
(ATAN :FLOAT)
(ATAN :VEC4 :VEC4)
(ATAN :VEC3 :VEC3)
(ATAN :VEC2 :VEC2)
(ATAN :FLOAT :FLOAT)
Official GLSL Documentaion:
Name
atan — return the arctangent of the parameters
Parameters
y
Specify the numerator of the fraction whose arctangent to return.
x
Specify the denominator of the fraction whose arctangent to return.
y_over_x
Specify the fraction whose arctangent to return.
Description
atan returns the angle whose trigonometric arctangent is y x or y_over_x,
depending on which overload is invoked. In the first overload, the signs of y
and x are used to determine the quadrant that the angle lies in. The values
returned by atan in this case are in the range − π π . Results are undefined if
x is zero.
For the second overload, atan returns the angle whose tangent is y_over_x.
Values returned in this case are in the range − π 2 π 2 .
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
atan ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
ATANH
4 overloads
)
func ATANH
Overloads:
(ATANH :VEC4)
(ATANH :VEC3)
(ATANH :VEC2)
(ATANH :FLOAT)
Official GLSL Documentaion:
Name
atanh — return the arc hyperbolic tangent of the parameter
Parameters
x
Specify the value whose arc hyperbolic tangent to return.
Description
atanh returns the arc hyperbolic tangent of x; the inverse of tanh. Results are
undefined if x>1.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
atanh ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

ATOMICCOUNTER
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTER :ATOMICUINT)
Official GLSL Documentaion:
Name
atomicCounter — return the current value of an atomic counter
Parameters
c
Specify the handle to the atomic counter whose value to return.
Description
atomicCounter returns the current value of of the atomic counter c.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
atomicCounter         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

ATOMICCOUNTERADD
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTERADD :ATOMICUINT :UINT32)

ATOMICCOUNTERAND
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTERAND :ATOMICUINT :UINT32)

ATOMICCOUNTERCOMPSWAP
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTERCOMPSWAP :ATOMICUINT :UINT32 :UINT32)

ATOMICCOUNTERDECREMENT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTERDECREMENT :ATOMICUINT)
Official GLSL Documentaion:
Name
atomicCounterDecrement — atomically decrement a counter and return its new
value
Parameters
c
Specify the handle to the atomic counter to decrement.
Description
atomicCounterDecrement atomically decrements the value of the atomic counter c
and returns its new value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
atomicCounterDecrement         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

ATOMICCOUNTEREXCHANGE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTEREXCHANGE :ATOMICUINT :UINT32)

ATOMICCOUNTERINCREMENT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTERINCREMENT :ATOMICUINT)
Official GLSL Documentaion:
Name
atomicCounterIncrement — atomically increment a counter and return the prior
value
Parameters
c
Specify the handle to the atomic counter to increment.
Description
atomicCounterIncrement atomically increments the value of the atomic counter c
and returns its prior value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
atomicCounterIncrement         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

ATOMICCOUNTERMAX
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTERMAX :ATOMICUINT :UINT32)

ATOMICCOUNTERMIN
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTERMIN :ATOMICUINT :UINT32)

ATOMICCOUNTEROR
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTEROR :ATOMICUINT :UINT32)

ATOMICCOUNTERSUBTRACT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTERSUBTRACT :ATOMICUINT :UINT32)

ATOMICCOUNTERXOR
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ATOMICCOUNTERXOR :ATOMICUINT :UINT32)

BARRIER
Overloads:
(GLSLSYMBOLS.FUNCTIONS:BARRIER)
Official GLSL Documentaion:
Name
barrier — synchronize execution of multiple shader invocations
Declaration
void barrier( void);
Description
Available only in the Tessellation Control and Compute Shaders, barrier
provides a partially defined order of execution between shader invocations. For
any given static instance of barrier, in a tessellation control shader, all
invocations for a single input patch must enter it before any will be allowed
to continue beyond it. For any given static instance of barrier in a compute
shader, all invocations within a single work group must enter it before any are
allowed to continue beyond it. This ensures that values written by one
invocation prior to a given static instance of barrier can be safely read by
other invocations after their call to the same static instance of barrier.
Because invocations may execute in undefined order between these barrier calls,
the values of a pervertex or perpatch output variable, or any shared variable
will be undefined in a number of cases.
barrier may only be placed inside the function main() of the tessellation
control shader, but may be placed anywhere in a compute shader. Calls to
barrier may not be placed within any control flow. Barriers are also disallowed
after a return statement in the function main().
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
barrier       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

BITCOUNT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:BITCOUNT :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:BITCOUNT :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:BITCOUNT :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:BITCOUNT :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:BITCOUNT :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:BITCOUNT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:BITCOUNT :UINT32)
(GLSLSYMBOLS.FUNCTIONS:BITCOUNT :INT32)
Official GLSL Documentaion:
Name
bitCount — counts the number of 1 bits in an integer
Parameters
value
Specifies the value whose bits to count.
Description
bitCount returns the number of bits that are set to 1 in the binary
representation of value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
bitCount       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

BITFIELDEXTRACT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:BITFIELDEXTRACT :UVEC4 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDEXTRACT :UVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDEXTRACT :UVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDEXTRACT :UINT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDEXTRACT :IVEC4 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDEXTRACT :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDEXTRACT :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDEXTRACT :INT32 :INT32 :INT32)
Official GLSL Documentaion:
Name
bitfieldExtract — extract a range of bits from an integer
Parameters
value
Specifies the integer from which to extract bits.
offset
Specifies the index of the first bit to extract.
bits
Specifies the number of bits to extract.
Description
bitfieldExtract extracts a subset of the bits of value and returns it in the
least significant bits of the result. The range of bits extracted is [offset,
offset + bits + 1].
For unsigned data types, the most significant bits of the result will be set to
zero. For signed data types, the most significant bits will be set to the value
of bit offset + base  1 (i.e., it is sign extended to the width of the return
type).
If bits is zero, the result will be zero. The result will be undefined if
offset or bits is negative, or if the sum of offset and bits is greater than
the number of bits used to store the operand.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
bitfieldInsert       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

BITFIELDINSERT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:BITFIELDINSERT :UVEC4 :UVEC4 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDINSERT :UVEC3 :UVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDINSERT :UVEC2 :UVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDINSERT :UINT32 :UINT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDINSERT :IVEC4 :IVEC4 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDINSERT :IVEC3 :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDINSERT :IVEC2 :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDINSERT :INT32 :INT32 :INT32 :INT32)
Official GLSL Documentaion:
Name
bitfieldInsert — insert a range of bits into an integer
Parameters
base
Specifies the integer into which to insert insert.
insert
Specifies the the value of the bits to insert.
offset
Specifies the index of the first bit to insert.
bits
Specifies the number of bits to insert.
Description
bitfieldInsert inserts the bits least significant bits of insert into base at
offset offset. The returned value will have bits [offset, offset + bits + 1]
taken from [0, bits  1] of insert and all other bits taken directly from the
corresponding bits of base. If bits is zero, the result will simply be the
original value of base. The result will be undefined if offset or bits is
negative, or if the sum of offset and bits is greater than the number of bits
used to store the operand.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
bitfieldInsert       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

BITFIELDREVERSE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:BITFIELDREVERSE :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDREVERSE :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDREVERSE :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDREVERSE :UINT32)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDREVERSE :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDREVERSE :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDREVERSE :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:BITFIELDREVERSE :INT32)
Official GLSL Documentaion:
Name
bitfieldReverse — reverse the order of bits in an integer
Parameters
value
Specifies the value whose bits to reverse.
Description
bitfieldReverse returns the reversal of the bits of value. The bit numbered n
will be taken from bit (bits  1)  n of value, where bits is the total number
of bits used to represent value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
bitfieldReverse       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
BOOL
0 overloads
)
func BOOL
Overloads:
(GLSLSYMBOLS.TYPES:BOOL :DOUBLE)
(GLSLSYMBOLS.TYPES:BOOL :FLOAT)
(GLSLSYMBOLS.TYPES:BOOL :UINT32)
(GLSLSYMBOLS.TYPES:BOOL :INT32)
(GLSLSYMBOLS.TYPES:BOOL :BOOL)

(
BVEC2
0 overloads
)
func BVEC2
Overloads:
(GLSLSYMBOLS.TYPES:BVEC2 :BOOL :BOOL)

(
BVEC3
0 overloads
)
func BVEC3
Overloads:
(GLSLSYMBOLS.TYPES:BVEC3 :BOOL :BOOL :BOOL)
(GLSLSYMBOLS.TYPES:BVEC3 :BVEC2 :BOOL)
(GLSLSYMBOLS.TYPES:BVEC3 :BOOL :BVEC2)

(
BVEC4
0 overloads
)
func BVEC4
Overloads:
(GLSLSYMBOLS.TYPES:BVEC4 :BOOL :BOOL :BOOL :BOOL)
(GLSLSYMBOLS.TYPES:BVEC4 :BOOL :BOOL :BVEC2)
(GLSLSYMBOLS.TYPES:BVEC4 :BOOL :BVEC2 :BOOL)
(GLSLSYMBOLS.TYPES:BVEC4 :BVEC2 :BOOL :BOOL)
(GLSLSYMBOLS.TYPES:BVEC4 :BVEC3 :BOOL)
(GLSLSYMBOLS.TYPES:BVEC4 :BOOL :BVEC3)
(GLSLSYMBOLS.TYPES:BVEC4 :BVEC2 :BVEC2)

(
CEIL
8 overloads
)
func CEIL
Overloads:
(GLSLSYMBOLS.FUNCTIONS:CEIL :VEC4)
(GLSLSYMBOLS.FUNCTIONS:CEIL :VEC3)
(GLSLSYMBOLS.FUNCTIONS:CEIL :VEC2)
(GLSLSYMBOLS.FUNCTIONS:CEIL :FLOAT)
Official GLSL Documentaion:
Name
ceil — find the nearest integer that is greater than or equal to the parameter
Parameters
x
Specify the value to evaluate.
Description
ceil returns a value equal to the nearest integer that is greater than or equal
to x.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
ceil (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
ceil (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
CLAMP
28 overloads
)
func CLAMP
Overloads:
(GLSLSYMBOLS.FUNCTIONS:CLAMP :VEC4 :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :VEC4 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :VEC3 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :VEC2 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :UVEC4 :UVEC4 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :UVEC4 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :UVEC3 :UVEC3 :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :UVEC3 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :UVEC2 :UVEC2 :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :UVEC2 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :UINT32 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :IVEC4 :IVEC4 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :IVEC4 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :IVEC3 :IVEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :IVEC2 :IVEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :INT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :DVEC4 :DVEC4 :DVEC4)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :DVEC4 :DOUBLE :DOUBLE)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :DVEC3 :DVEC3 :DVEC3)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :DVEC3 :DOUBLE :DOUBLE)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :DVEC2 :DVEC2 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :DVEC2 :DOUBLE :DOUBLE)
(GLSLSYMBOLS.FUNCTIONS:CLAMP :DOUBLE :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
clamp — constrain a value to lie between two further values
Parameters
x
Specify the value to constrain.
minVal
Specify the lower end of the range into which to constrain x.
maxVal
Specify the upper end of the range into which to constrain x.
Description
clamp returns the value of x constrained to the range minVal to maxVal. The
returned value is computed as min(max(x, minVal), maxVal).
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
clamp (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
clamp (genIType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
clamp (genUType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
clamp (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

COS
Overloads:
(COS :VEC4)
(COS :VEC3)
(COS :VEC2)
(COS :FLOAT)
Official GLSL Documentaion:
Name
cos — return the cosine of the parameter
Parameters
angle
Specify the quantity, in radians, of which to return the cosine.
Description
cos returns the trigonometric cosine of angle.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
cos ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
COSH
4 overloads
)
func COSH
Overloads:
(COSH :VEC4)
(COSH :VEC3)
(COSH :VEC2)
(COSH :FLOAT)
Official GLSL Documentaion:
Name
cosh — return the hyperbolic cosine of the parameter
Parameters
x
Specify the value whose hyperbolic cosine to return.
Description
cosh returns the hyperbolic cosine of x. The hyperbolic cosine of x is computed
as e x + e − x 2 .
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
cosh   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
CROSS
2 overloads
)
func CROSS
Overloads:
(GLSLSYMBOLS.FUNCTIONS:CROSS :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:CROSS :DVEC3 :DVEC3)
Official GLSL Documentaion:
Name
cross — calculate the cross product of two vectors
Parameters
x
Specifies the first of two vectors
y
Specifies the second of two vectors
Description
cross returns the cross product of two vectors, x and y. i.e.,
( x [ 1 ] ⋅ y [ 2 ] − y [ 1 ] ⋅ x [ 2 ] x [ 2 ] ⋅ y [ 0 ] − y [ 2 ] ⋅ x [ 0 ] x
[ 0 ] ⋅ y [ 1 ] − y [ 1 ] ⋅ x [ 1 ] )
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
cross (vec3) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
cross (dvec3)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
DFDX
4 overloads
)
func DFDX
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DFDX :VEC4)
(GLSLSYMBOLS.FUNCTIONS:DFDX :VEC3)
(GLSLSYMBOLS.FUNCTIONS:DFDX :VEC2)
(GLSLSYMBOLS.FUNCTIONS:DFDX :FLOAT)
Official GLSL Documentaion:
Name
dFdx, dFdy — return the partial derivative of an argument with respect to x or
y
Parameters
p
Specifies the expression of which to take the partial derivative.
Description
Available only in the fragment shader, these functions return the partial
derivative of expression p with respect to the window $x$ coordinate (for
dFdx*) and $y$ coordinate (for dFdy*).
dFdxFine and dFdyFine calculate derivatives using local differencing based on
on the value of p for the current fragment and its immediate neighbor(s).
dFdxCoarse and dFdyCoarse calculate derivatives using local differencing based
on the value of p for the current fragment's neighbors, and will possibly, but
not necessarily, include the value for the current fragment. That is, over a
given area, the implementation can compute derivatives in fewer unique
locations than would be allowed for the corresponding dFdxFine and dFdyFine
functions.
dFdx returns either dFdxCoarse or dFdxFine. dFdy returns either dFdyCoarse or
dFdyFine. The implementation may choose which calculation to perform based upon
factors such as performance or the value of the API
GL_FRAGMENT_SHADER_DERIVATIVE_HINT hint.
Expressions that imply higher order derivatives such as dFdx(dFdx(n)) have
undefined results, as do mixedorder derivatives such as dFdx(dFdy(n)). It is
assumed that the expression p is continuous and therefore, expressions
evaluated via nonuniform control flow may be undefined.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
dFdx ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
dFdy ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
dFdxCoarse,
dFdxFine,            ✔
dFdyCoarse, dFdyFine
Copyright © 20112014 Khronos Group

DFDXCOARSE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DFDXCOARSE :VEC4)
(GLSLSYMBOLS.FUNCTIONS:DFDXCOARSE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:DFDXCOARSE :VEC2)
(GLSLSYMBOLS.FUNCTIONS:DFDXCOARSE :FLOAT)

DFDXFINE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DFDXFINE :VEC4)
(GLSLSYMBOLS.FUNCTIONS:DFDXFINE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:DFDXFINE :VEC2)
(GLSLSYMBOLS.FUNCTIONS:DFDXFINE :FLOAT)

(
DFDY
4 overloads
)
func DFDY
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DFDY :VEC4)
(GLSLSYMBOLS.FUNCTIONS:DFDY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:DFDY :VEC2)
(GLSLSYMBOLS.FUNCTIONS:DFDY :FLOAT)
Official GLSL Documentaion:

DFDYCOARSE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DFDYCOARSE :VEC4)
(GLSLSYMBOLS.FUNCTIONS:DFDYCOARSE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:DFDYCOARSE :VEC2)
(GLSLSYMBOLS.FUNCTIONS:DFDYCOARSE :FLOAT)

DFDYFINE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DFDYFINE :VEC4)
(GLSLSYMBOLS.FUNCTIONS:DFDYFINE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:DFDYFINE :VEC2)
(GLSLSYMBOLS.FUNCTIONS:DFDYFINE :FLOAT)

DEGREES
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DEGREES :VEC4)
(GLSLSYMBOLS.FUNCTIONS:DEGREES :VEC3)
(GLSLSYMBOLS.FUNCTIONS:DEGREES :VEC2)
(GLSLSYMBOLS.FUNCTIONS:DEGREES :FLOAT)
Official GLSL Documentaion:
Name
degrees — convert a quantity in radians to degrees
Parameters
radians
Specify the quantity, in radians, to be converted to degrees.
Description
degrees converts a quantity, specified in radians into degrees. That is, the
return value is 180⋅ radians π .
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
degrees ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

DETERMINANT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DETERMINANT :MAT4)
(GLSLSYMBOLS.FUNCTIONS:DETERMINANT :MAT3)
(GLSLSYMBOLS.FUNCTIONS:DETERMINANT :MAT2)
(GLSLSYMBOLS.FUNCTIONS:DETERMINANT :DMAT4)
(GLSLSYMBOLS.FUNCTIONS:DETERMINANT :DMAT3)
(GLSLSYMBOLS.FUNCTIONS:DETERMINANT :DMAT2)
Official GLSL Documentaion:
Name
determinant — calculate the determinant of a matrix
Parameters
m
Specifies the matrix of which to take the determinant.
Description
determinant returns the determinant of the matrix m.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
determinant (float)     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
determinant       ✔ ✔ ✔ ✔ ✔ ✔
(double)
Copyright © 20112014 Khronos Group

(
DIFF
0 overloads
)
func DIFF
Overloads:
(VARI.GLSL:DIFF VARI.GLSL::VDEPTHRANGEPARAMETERS)

DISCARD
Overloads:
(VARI.GLSL:DISCARD)

DISTANCE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DISTANCE :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:DISTANCE :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:DISTANCE :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:DISTANCE :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:DISTANCE :DVEC2 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:DISTANCE :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
distance — calculate the distance between two points
Parameters
p0
Specifies the first of two points
p1
Specifies the second of two points
Description
distance returns the distance between the two points p0 and p1. i.e., length(p0
, p1);
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
distance (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
distance (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
DIVF
0 overloads
)
func 
DOT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:DOT :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:DOT :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:DOT :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:DOT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:DOT :DVEC2 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:DOT :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
dot — calculate the dot product of two vectors
Parameters
x
Specifies the first of two vectors
y
Specifies the second of two vectors
Description
dot returns the dot product of two vectors, x and y. i.e., x [ 0 ] ⋅ y [ 0 ] +
x [ 1 ] ⋅ y [ 1 ] + ...
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
dot (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
dot (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

DOUBLE
Overloads:
(GLSLSYMBOLS.TYPES:DOUBLE :FLOAT)
(GLSLSYMBOLS.TYPES:DOUBLE :BOOL)
(GLSLSYMBOLS.TYPES:DOUBLE :UINT32)
(GLSLSYMBOLS.TYPES:DOUBLE :INT32)
(GLSLSYMBOLS.TYPES:DOUBLE :DOUBLE)

(
DVEC2
0 overloads
)
func DVEC2
Overloads:
(GLSLSYMBOLS.TYPES:DVEC2 :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC2 :DOUBLE :DOUBLE)

(
DVEC3
0 overloads
)
func DVEC3
Overloads:
(GLSLSYMBOLS.TYPES:DVEC3 :DOUBLE :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC3 :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC3 :DOUBLE :DOUBLE :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC3 :DVEC2 :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC3 :DOUBLE :DVEC2)

(
DVEC4
0 overloads
)
func DVEC4
Overloads:
(GLSLSYMBOLS.TYPES:DVEC4 :DOUBLE :DOUBLE :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC4 :DOUBLE :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC4 :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC4 :DOUBLE :DOUBLE :DOUBLE :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC4 :DOUBLE :DOUBLE :DVEC2)
(GLSLSYMBOLS.TYPES:DVEC4 :DOUBLE :DVEC2 :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC4 :DVEC2 :DOUBLE :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC4 :DVEC3 :DOUBLE)
(GLSLSYMBOLS.TYPES:DVEC4 :DOUBLE :DVEC3)
(GLSLSYMBOLS.TYPES:DVEC4 :DVEC2 :DVEC2)

(
EMIT
0 overloads
)
func 

EMITSTREAMVERTEX
Overloads:
(GLSLSYMBOLS.FUNCTIONS:EMITSTREAMVERTEX :INT32)
Official GLSL Documentaion:
Name
EmitStreamVertex — emit a vertex to a specified stream
Parameters
stream
Specifies the stream upon which the vertex will be emitted.
Description
Available only in the Geometry Shader, EmitStreamVertex emits the current
values of output variables to the current output primitive on stream stream.
The argument stream must be a constant integral expression. On return from this
call, the value of all output variables for all streams are undefined.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
EmitStreamVertex       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

EMITVERTEX
Overloads:
(GLSLSYMBOLS.FUNCTIONS:EMITVERTEX)
Official GLSL Documentaion:
Name
EmitVertex — emit a vertex to the first vertex stream
Declaration
void EmitVertex( void);
Description
Available only in the Geometry Shader, EmitVertex emits the current values of
output variables to the current output primitive on the first (and possibly
only) primitive stream. It is equivalent to calling EmitStreamVertex with
stream set to 0.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
EmitVertex     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
See Also
EmitStreamVertex, EndStreamPrimitive, EndPrimitive
Copyright © 20112014 Khronos Group

ENDPRIMITIVE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ENDPRIMITIVE)
Official GLSL Documentaion:
Name
EndPrimitive — complete the current output primitive on the first vertex stream
Declaration
void EndPrimitive( void);
Description
Available only in the Geometry Shader, EndPrimitive completes the current
output primitive on the first (and possibly only) vertex stream and starts a
new one.No vertex is emitted. Calling EndPrimitive is equivalent to calling
EmitStreamVertex with stream set to 0.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
EndPrimitive     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
See Also
EmitVertex, EmitStreamVertex, EndStreamPrimitive
Copyright © 20112014 Khronos Group

ENDSTREAMPRIMITIVE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ENDSTREAMPRIMITIVE :INT32)
Official GLSL Documentaion:
Name
EndStreamPrimitive — complete the current output primitive on a specified
stream
Parameters
stream
Specifies the stream upon which the current primitive will be ended.
Description
Available only in the Geometry Shader, EndStreamPrimitive completes the current
output primitive on stream stream and starts a new one. The argument to stream
must be a constant integral expression. No vertex is emitted.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
EndStreamPrimitive       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
EQUAL
9 overloads
)
func EQUAL
Overloads:
(EQUAL COMPLEX COMPLEX)
(EQUAL VARI.TYPES:VARRAY VARI.TYPES:VARRAY)
(EQUAL :MAT4 :MAT4)
(EQUAL :MAT3 :MAT3)
(EQUAL :MAT2 :MAT2)
(EQUAL :DVEC4 :DVEC4)
(EQUAL :DVEC3 :DVEC3)
(EQUAL :DVEC2 :DVEC2)
(EQUAL :UVEC4 :UVEC4)
(EQUAL :UVEC3 :UVEC3)
(EQUAL :UVEC2 :UVEC2)
(EQUAL :IVEC4 :IVEC4)
(EQUAL :IVEC3 :IVEC3)
(EQUAL :IVEC2 :IVEC2)
(EQUAL :VEC4 :VEC4)
(EQUAL :VEC3 :VEC3)
(EQUAL :VEC2 :VEC2)
(EQUAL :SHORTFLOAT :SHORTFLOAT)
(EQUAL :DOUBLE :DOUBLE)
(EQUAL :FLOAT :FLOAT)
(EQUAL :UINT32 :UINT32)
(EQUAL :INT32 :INT32)
Returns T is both arguments are numbers with the same value, or in the case
of aggregates, if the are componentwise EQUAL.
EQUAL does not work on GLSL's opaque types

EXP
Overloads:
(EXP :VEC4)
(EXP :VEC3)
(EXP :VEC2)
(EXP :FLOAT)
Official GLSL Documentaion:
Name
exp — return the natural exponentiation of the parameter
Parameters
x
Specify the value to exponentiate.
Description
pow returns the natural exponentiation of x. i.e., ex.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
exp ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
EXP2
4 overloads
)
func EXP2
Overloads:
(GLSLSYMBOLS.FUNCTIONS:EXP2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:EXP2 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:EXP2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:EXP2 :FLOAT)
Official GLSL Documentaion:
Name
exp2 — return 2 raised to the power of the parameter
Parameters
x
Specify the value of the power to which 2 will be raised.
Description
exp2 returns 2 raised to the power of x. i.e., 2x.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
exp2 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

FACEFORWARD
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FACEFORWARD :VEC4 :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:FACEFORWARD :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:FACEFORWARD :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:FACEFORWARD :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:FACEFORWARD :DVEC2 :DVEC2 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:FACEFORWARD :DOUBLE :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
faceforward — return a vector pointing in the same direction as another
Parameters
N
Specifies the vector to orient.
I
Specifies the incident vector.
Nref
Specifies the reference vector.
Description
faceforward orients a vector to point away from a surface as defined by its
normal. If dot(Nref, I) < 0 faceforward returns N, otherwise it returns N.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
faceforward (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
faceforward       ✔ ✔ ✔ ✔ ✔ ✔
(genDType)
Copyright © 20112014 Khronos Group

FAR
Overloads:
(VARI.GLSL:FAR VARI.GLSL::VDEPTHRANGEPARAMETERS)

FINDLSB
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FINDLSB :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:FINDLSB :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:FINDLSB :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:FINDLSB :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:FINDLSB :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:FINDLSB :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:FINDLSB :UINT32)
(GLSLSYMBOLS.FUNCTIONS:FINDLSB :INT32)
Official GLSL Documentaion:
Name
findLSB — find the index of the least significant bit set to 1 in an integer
Parameters
value
Specifies the value whose bits to scan.
Description
findLSB returns the bit number of the least significant bit that is set to 1 in
the binary representation of value. If value is zero, 1 will be returned.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
findLSB       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

FINDMSB
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FINDMSB :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:FINDMSB :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:FINDMSB :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:FINDMSB :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:FINDMSB :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:FINDMSB :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:FINDMSB :UINT32)
(GLSLSYMBOLS.FUNCTIONS:FINDMSB :INT32)
Official GLSL Documentaion:
Name
findMSB — find the index of the most significant bit set to 1 in an integer
Parameters
value
Specifies the value whose bits to scan.
Description
findMSB returns the bit number of the most significant bit that is set to 1 in
the binary representation of value. For positive integers, the result will be
the bit number of the most significant bit that is set to 1. For negative
integers, the result will be the bit number of the most significant bit set to
0. For a value of zero or negative 1, 1 will be returned.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
findMSB       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
FLOAT
0 overloads
)
func FLOAT
Overloads:
(FLOAT VARI.TYPES:VREAL :DOUBLE)
(FLOAT VARI.TYPES:VREAL :FLOAT)
(FLOAT :DOUBLE)
(FLOAT :BOOL)
(FLOAT :UINT32)
(FLOAT :INT32)
(FLOAT :FLOAT)
Converts any REAL to a float. If OTHER is not provided, it returns a
SINGLEFLOAT if NUMBER is not already a FLOAT. If OTHER is provided, the
result is the same float format as OTHER.

FLOATBITSTOINT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FLOATBITSTOINT :VEC4)
(GLSLSYMBOLS.FUNCTIONS:FLOATBITSTOINT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:FLOATBITSTOINT :VEC2)
(GLSLSYMBOLS.FUNCTIONS:FLOATBITSTOINT :FLOAT)
Official GLSL Documentaion:
Name
floatBitsToInt — produce the encoding of a floating point value as an integer
Parameters
x
Specifies the value whose floating point encoding to return.
Description
floatBitsToInt and floatBitsToUint return the encoding of their floatingpoint
parameters as int or uint, respectively. The floatingpoint bitlevel
representation is preserved.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
floatBitsToInt      ✔ ✔ ✔ ✔ ✔ ✔ ✔
floatBitsToUInt      ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

FLOATBITSTOUINT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FLOATBITSTOUINT :VEC4)
(GLSLSYMBOLS.FUNCTIONS:FLOATBITSTOUINT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:FLOATBITSTOUINT :VEC2)
(GLSLSYMBOLS.FUNCTIONS:FLOATBITSTOUINT :FLOAT)

(
FLOOR
8 overloads
)
func FLOOR
Overloads:
(FLOOR :VEC4)
(FLOOR :VEC3)
(FLOOR :VEC2)
(FLOOR :FLOAT)
Official GLSL Documentaion:
Name
floor — find the nearest integer less than or equal to the parameter
Parameters
x
Specify the value to evaluate.
Description
floor returns a value equal to the nearest integer that is less than or equal
to x.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
floor (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
floor (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

FMA
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FMA :VEC4 :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:FMA :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:FMA :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:FMA :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:FMA :DVEC2 :DVEC2 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:FMA :DOUBLE :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
fma — perform a fused multiplyadd operation
Parameters
a
Specifies the first multiplicand.
b
Specifies the second multiplicand.
c
Specifies the value to be added to the result.
Description
fma performs, where possible, a fused multiplyadd operation, returning a * b +
c. In use cases where the return value is eventually consumed by a variable
declared as precise:
• fma() is considered a single operation, whereas the expression a * b + c
consumed by a variable declared as precise is considered two operations.
• The precision of fma() can differ from the precision of the expression a *
b + c.
• fma() will be computed with the same precision as any other fma() consumed
by a precise variable, giving invariant results for the same input values
of a, b and c.
Otherwise, in the absense of precise consumption, there are no special
constraints on the number of operations or difference in precision between fma
() and the expression a * b + c.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
fma (genType)       ✔ ✔ ✔ ✔ ✔ ✔
fma (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group


(
FRACT
8 overloads
)
func FRACT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FRACT :VEC4)
(GLSLSYMBOLS.FUNCTIONS:FRACT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:FRACT :VEC2)
(GLSLSYMBOLS.FUNCTIONS:FRACT :FLOAT)
Official GLSL Documentaion:
Name
fract — compute the fractional part of the argument
Parameters
x
Specify the value to evaluate.
Description
fract returns the fractional part of x. This is calculated as x  floor(x).
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
fract (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
fract (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

FWIDTH
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FWIDTH :VEC4)
(GLSLSYMBOLS.FUNCTIONS:FWIDTH :VEC3)
(GLSLSYMBOLS.FUNCTIONS:FWIDTH :VEC2)
(GLSLSYMBOLS.FUNCTIONS:FWIDTH :FLOAT)
Official GLSL Documentaion:
Name
fwidth — return the sum of the absolute value of derivatives in x and y
Parameters
p
Specifies the expression of which to take the partial derivative.
Description
Available only in the fragment shader, these functions return the sum of the
absolute derivatives in $x$ and $y$ using local differencing for the input
argument p. fwidth is equivalent to abs(dFdx(p)) + abs(dFdy(p)) . fwidthCoarse
is equivalent to abs(dFdxCoarse(p)) + abs(dFdyCoarse(p)) . fwidthFine is
equivalent to abs(dFdxFine(p)) + abs(dFdyFine(p)) .
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
fwidth ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
fwidthCoarse,            ✔
fwidthFine
Copyright © 20112014 Khronos Group

FWIDTHCOARSE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FWIDTHCOARSE :VEC4)
(GLSLSYMBOLS.FUNCTIONS:FWIDTHCOARSE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:FWIDTHCOARSE :VEC2)
(GLSLSYMBOLS.FUNCTIONS:FWIDTHCOARSE :FLOAT)

FWIDTHFINE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:FWIDTHFINE :VEC4)
(GLSLSYMBOLS.FUNCTIONS:FWIDTHFINE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:FWIDTHFINE :VEC2)
(GLSLSYMBOLS.FUNCTIONS:FWIDTHFINE :FLOAT)


GREATERTHAN
Overloads:
(GLSLSYMBOLS.FUNCTIONS:GREATERTHAN :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHAN :UVEC4 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHAN :IVEC4 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHAN :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHAN :UVEC3 :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHAN :IVEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHAN :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHAN :UVEC2 :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHAN :IVEC2 :IVEC2)
Official GLSL Documentaion:
Name
greaterThan — perform a componentwise greaterthan comparison of two vectors
Parameters
x
Specifies the first vector to be used in the comparison operation.
y
Specifies the second vector to be used in the comparison operation.
Description
greaterThan returns a boolean vector in which each element i is computed as x[i
] > y[i].
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
greaterThan (vec) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
greaterThan (ivec) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
greaterThan (uvec)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

GREATERTHANEQUAL
Overloads:
(GLSLSYMBOLS.FUNCTIONS:GREATERTHANEQUAL :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHANEQUAL :UVEC4 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHANEQUAL :IVEC4 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHANEQUAL :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHANEQUAL :UVEC3 :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHANEQUAL :IVEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHANEQUAL :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHANEQUAL :UVEC2 :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:GREATERTHANEQUAL :IVEC2 :IVEC2)
Official GLSL Documentaion:
Name
greaterThanEqual — perform a componentwise greaterthanorequal comparison of
two vectors
Parameters
x
Specifies the first vector to be used in the comparison operation.
y
Specifies the second vector to be used in the comparison operation.
Description
greaterThanEqual returns a boolean vector in which each element i is computed
as x[i] ≥ y[i].
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
greaterThanEqual ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(vec)
greaterThanEqual ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(ivec)
greaterThanEqual   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(uvec)
Copyright © 20112014 Khronos Group

GROUPMEMORYBARRIER
Overloads:
(GLSLSYMBOLS.FUNCTIONS:GROUPMEMORYBARRIER)
Official GLSL Documentaion:
Name
groupMemoryBarrier — controls the ordering of memory transaction issued shader
invocation relative to a work group
Declaration
void groupMemoryBarrier( void);
Description
groupMemoryBarrier waits on the completion of all memory accesses performed by
an invocation of a compute shader relative to the same access performed by
other invocations in the same work group and then returns with no other effect.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
groupMemoryBarrier          ✔ ✔ ✔
See Also
memoryBarrier, memoryBarrierImage, memoryBarrierBuffer, memoryBarrierShared
Copyright © 20112014 Khronos Group

IMAGEATOMICADD
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :BUFFERIMAGE :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :UIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :IIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICADD :BUFFERIMAGE :INT32 :INT32)
Official GLSL Documentaion:
Name
imageAtomicAdd — atomically add a value to an existing value in memory and
return the original value
Parameters
image
Specify the image unit into which to add data.
P
Specify the coordinate at which to add the data.
sample
When present, specifies the sample within the image to add into.
data
Specifies the data to add into the image.
Description
imageAtomicAdd atomically computes a new value by adding the value of data to
the contents of the texel at coordinate P and sample in the image bound to uint
image, stores that value into the image and returns the original value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageAtomicAdd         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

IMAGEATOMICAND
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :BUFFERIMAGE :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :UIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :IIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICAND :BUFFERIMAGE :INT32 :INT32)
Official GLSL Documentaion:
Name
imageAtomicAnd — atomically compute the logical AND of a value with an existing
value in memory, store that value and return the original value
Parameters
image
Specify the image unit into which to store data.
P
Specify the coordinate at which to store the data.
sample
When present, specifies the sample within the image to store into.
data
Specifies the data to logically AND into the image.
Description
imageAtomicAnd atomically computes a new value by logically ANDing the value of
data to the contents of the texel at coordinate P and sample in the image bound
to uint image, stores that value into the image and returns the original value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageAtomicAnd         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

IMAGEATOMICCOMPSWAP
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGECUBEARRAY :IVEC3
:UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGECUBE :IVEC3 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE3D :IVEC3 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2DRECT :IVEC2 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2DMSARRAY :IVEC3
:INT32 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2DMS :IVEC2 :INT32
:UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2DARRAY :IVEC3 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2D :IVEC2 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE1DARRAY :IVEC2 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE1D :INT32 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGECUBEARRAY :IVEC3 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGECUBE :IVEC3 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE3D :IVEC3 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2DRECT :IVEC2 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2DMSARRAY :IVEC3 :INT32
:UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2DMS :IVEC2 :INT32
:UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2DARRAY :IVEC3 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2D :IVEC2 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE1DARRAY :IVEC2 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE1D :INT32 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGECUBEARRAY :IVEC3
:UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGECUBE :IVEC3 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE3D :IVEC3 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2DRECT :IVEC2 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2DMSARRAY :IVEC3
:INT32 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2DMS :IVEC2 :INT32
:UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2DARRAY :IVEC3 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2D :IVEC2 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE1DARRAY :IVEC2 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE1D :INT32 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :BUFFERIMAGE :INT32 :UINT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGECUBEARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGECUBE :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE3D :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2DRECT :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2DMSARRAY :IVEC3
:INT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2DMS :IVEC2 :INT32
:INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2DARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE2D :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE1DARRAY :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :UIMAGE1D :INT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGECUBEARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGECUBE :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE3D :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2DRECT :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2DMSARRAY :IVEC3 :INT32
:INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2DMS :IVEC2 :INT32
:INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2DARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE2D :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE1DARRAY :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IMAGE1D :INT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGECUBEARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGECUBE :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE3D :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2DRECT :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2DMSARRAY :IVEC3
:INT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2DMS :IVEC2 :INT32
:INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2DARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE2D :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE1DARRAY :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :IIMAGE1D :INT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICCOMPSWAP :BUFFERIMAGE :INT32 :INT32
:INT32)
Official GLSL Documentaion:
Name
imageAtomicCompSwap — atomically compares supplied data with that in memory and
conditionally stores it to memory
Parameters
image
Specify the image unit into which to compare and conditionally store data.
P
Specify the coordinate at which to compare and conditionally store the
data.
sample
When present, specifies the sample within the image to compare and
conditionally store into.
compare
Specifies the value to compare with the content of the image.
data
Specifies the value to store in the image if compare is equal to the
existing image content.
Description
imageAtomicCompSwap atomically compares the value of compare with that of the
texel at coordinate P and sample (for multisampled forms) in the image bound to
uint image. If the values are equal, data is stored into the texel, otherwise
it is discarded. It returns the original value of the texel regardless of the
result of the comparison operation.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageAtomicCompSwap         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

IMAGEATOMICEXCHANGE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DMS :IVEC2 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DMS :IVEC2 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DMS :IVEC2 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :BUFFERIMAGE :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGECUBEARRAY :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGECUBE :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE3D :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DRECT :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DMSARRAY :IVEC3 :INT32
:FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DMS :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DMS :IVEC2 :INT32
:FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2DARRAY :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE2D :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE1DARRAY :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :UIMAGE1D :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGECUBEARRAY :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGECUBE :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE3D :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DRECT :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DMSARRAY :IVEC3 :INT32
:FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DMS :IVEC2 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2DARRAY :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE2D :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE1DARRAY :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IMAGE1D :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGECUBEARRAY :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGECUBE :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE3D :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DRECT :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DMSARRAY :IVEC3 :INT32
:FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DMS :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DMS :IVEC2 :INT32
:FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2DARRAY :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE2D :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE1DARRAY :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :IIMAGE1D :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :BUFFERIMAGE :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICEXCHANGE :BUFFERIMAGE :INT32 :FLOAT)
Official GLSL Documentaion:
Name
imageAtomicExchange — atomically store supplied data into memory and return the
original value from memory
Parameters
image
Specify the image unit into which to store data.
P
Specify the coordinate at which to store the data.
sample
When present, specifies the sample within the image to store into.
data
Specifies the data to exchange with that stored in the image.
Description
imageAtomicExchange atomically stores the value of data into the texel at
coordinate P and sample in the image bound to unit image, and returns the
original value of the texel.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageAtomicExchange         ✔ ✔ ✔ ✔
(uint and int data)
imageAtomicExchange            ✔
(float data)
Copyright © 20112014 Khronos Group

IMAGEATOMICMAX
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :BUFFERIMAGE :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :UIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :IIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMAX :BUFFERIMAGE :INT32 :INT32)
Official GLSL Documentaion:
Name
imageAtomicMax — atomically compute the minimum of a value with an existing
value in memory, store that value and return the original value
Parameters
image
Specify the image unit into which to store data.
P
Specify the coordinate at which to store the data.
sample
When present, specifies the sample within the image to store into.
data
Specifies the data of which to take the minimum with that stored in the
image.
Description
imageAtomicMax atomically computes a new value by finding the maximum of the
value of data and the contents of the texel at coordinate P and sample in the
image bound to uint image, stores that value into the image and returns the
original value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageAtomicMax         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

IMAGEATOMICMIN
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :BUFFERIMAGE :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :UIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :IIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICMIN :BUFFERIMAGE :INT32 :INT32)
Official GLSL Documentaion:
Name
imageAtomicMin — atomically compute the minimum of a value with an existing
value in memory, store that value and return the original value
Parameters
image
Specify the image unit into which to store data.
P
Specify the coordinate at which to store the data.
sample
When present, specifies the sample within the image to store into.
data
Specifies the data of which to take the minimum with that stored in the
image.
Description
imageAtomicMin atomically computes a new value by finding the minimum of the
value of data and the contents of the texel at coordinate P and sample in the
image bound to uint image, stores that value into the image and returns the
original value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageAtomicMin         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

IMAGEATOMICOR
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :BUFFERIMAGE :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :UIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2DMSARRAY :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :IIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICOR :BUFFERIMAGE :INT32 :INT32)
Official GLSL Documentaion:
Name
imageAtomicOr — atomically compute the logical OR of a value with an existing
value in memory, store that value and return the original value
Parameters
image
Specify the image unit into which to store data.
P
Specify the coordinate at which to store the data.
sample
When present, specifies the sample within the image to store into.
data
Specifies the data to logically OR into the image.
Description
imageAtomicOr atomically computes a new value by logically ORing the value of
data to the contents of the texel at coordinate P and sample in the image bound
to uint image, stores that value into the image and returns the original value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageAtomicOr         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

IMAGEATOMICXOR
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGECUBEARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGECUBE :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE3D :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2DRECT :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2DMSARRAY :IVEC3 :INT32
:UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2DMS :IVEC2 :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2DARRAY :IVEC3 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2D :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE1DARRAY :IVEC2 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE1D :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :BUFFERIMAGE :INT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :UIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGECUBEARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGECUBE :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2DMSARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2DMS :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :IIMAGE1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGEATOMICXOR :BUFFERIMAGE :INT32 :INT32)
Official GLSL Documentaion:
Name
imageAtomicXor — atomically compute the logical exclusive OR of a value with an
existing value in memory, store that value and return the original value
Parameters
image
Specify the image unit into which to store data.
P
Specify the coordinate at which to store the data.
sample
When present, specifies the sample within the image to store into.
data
Specifies the data to logically XOR into the image.
Description
imageAtomicXor atomically computes a new value by logically XORing the value of
data to the contents of the texel at coordinate P and sample in the image bound
to uint image, stores that value into the image and returns the original value.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageAtomicXor         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

IMAGELOAD
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGECUBEARRAY :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGECUBE :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGE3D :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGE2DRECT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGE2DMSARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGE2DMS :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGE2DARRAY :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGE2D :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGE1DARRAY :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IMAGE1D :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :BUFFERIMAGE :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGECUBEARRAY :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGECUBE :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGE3D :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGE2DRECT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGE2DMSARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGE2DMS :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGE2DARRAY :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGE2D :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGE1DARRAY :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UIMAGE1D :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :UBUFFERIMAGE :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGECUBEARRAY :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGECUBE :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGE3D :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGE2DRECT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGE2DMSARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGE2DMS :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGE2DARRAY :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGE2D :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGE1DARRAY :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IIMAGE1D :INT32)
(GLSLSYMBOLS.FUNCTIONS:IMAGELOAD :IBUFFERIMAGE :INT32)
Official GLSL Documentaion:
Name
imageLoad — load a single texel from an image
Parameters
image
Specify the image unit from which to load a texel.
P
Specify the coordinate from which to load the texel.
sample
When present, specifies the sample within the image to load
Description
imageLoad loads the texel at the coordinate P from the image unit image. For
multisample loads, the sample number is given by sample. When image, P, sample
identify a valid texel, the bits used to represent the selected texel in memory
are converted to a vec4, ivec4, or uvec4 in the manner described in the OpenGL
Specification and returned.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageLoad         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

IMAGESAMPLES
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGESAMPLES :UIMAGE2DMSARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESAMPLES :UIMAGE2DMS)
(GLSLSYMBOLS.FUNCTIONS:IMAGESAMPLES :IMAGE2DMSARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESAMPLES :IMAGE2DMS)
(GLSLSYMBOLS.FUNCTIONS:IMAGESAMPLES :IIMAGE2DMSARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESAMPLES :IIMAGE2DMS)
Official GLSL Documentaion:
Name
imageSamples — return the number of samples of an image
Parameters
image
Specifies the image to which the texture is bound.
Description
imageSamples returns the number of samples per texel of the image bound to
image.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageSamples            ✔
Copyright © 20112014 Khronos Group

IMAGESIZE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGECUBEARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGE3D)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGE2DMSARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGE2DARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGECUBEARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGE3D)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGE2DMSARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGE2DARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGECUBEARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGE3D)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGE2DMSARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGE2DARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGERECT)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGECUBE)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGE2DMS)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGE2D)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGE1DARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGERECT)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGECUBE)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGE2DMS)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGE2D)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGE1DARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGERECT)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGECUBE)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGE2DMS)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGE2D)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGE1DARRAY)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGEBUFFER)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :UIMAGE1D)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGEBUFFER)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IMAGE1D)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGEBUFFER)
(GLSLSYMBOLS.FUNCTIONS:IMAGESIZE :IIMAGE1D)
Official GLSL Documentaion:
Name
imageSize — retrieve the dimensions of an image
Parameters
image
Specifies the image to which the texture whose dimensions to retrieve is
bound.
Description
imageSize returns the dimensions of the image bound to image. The components in
the return value are filled in, in order, with the width, height and depth of
the image. For the array forms, the last component of the return value is the
number of layers in the texture array.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageSize          ✔ ✔ ✔
Copyright © 20112014 Khronos Group

IMAGESTORE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGECUBEARRAY :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGECUBEARRAY :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGECUBEARRAY :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGECUBE :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGECUBE :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGECUBE :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE3D :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE3D :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE3D :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DRECT :IVEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DRECT :IVEC2 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DRECT :IVEC2 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DMSARRAY :IVEC3 :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DMSARRAY :IVEC3 :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DMSARRAY :IVEC3 :INT32 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DMS :IVEC2 :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DMS :IVEC2 :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DMS :IVEC2 :INT32 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DARRAY :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DARRAY :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2DARRAY :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2D :IVEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2D :IVEC2 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE2D :IVEC2 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE1DARRAY :IVEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE1DARRAY :IVEC2 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE1DARRAY :IVEC2 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE1D :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE1D :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :UIMAGE1D :INT32 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGECUBEARRAY :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGECUBEARRAY :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGECUBEARRAY :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGECUBE :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGECUBE :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGECUBE :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE3D :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE3D :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE3D :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DRECT :IVEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DRECT :IVEC2 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DRECT :IVEC2 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DMSARRAY :IVEC3 :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DMSARRAY :IVEC3 :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DMSARRAY :IVEC3 :INT32 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DMS :IVEC2 :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DMS :IVEC2 :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DMS :IVEC2 :INT32 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DARRAY :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DARRAY :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2DARRAY :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2D :IVEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2D :IVEC2 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE2D :IVEC2 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE1DARRAY :IVEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE1DARRAY :IVEC2 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE1DARRAY :IVEC2 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE1D :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE1D :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IMAGE1D :INT32 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGECUBEARRAY :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGECUBEARRAY :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGECUBEARRAY :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGECUBE :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGECUBE :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGECUBE :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE3D :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE3D :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE3D :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DRECT :IVEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DRECT :IVEC2 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DRECT :IVEC2 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DMSARRAY :IVEC3 :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DMSARRAY :IVEC3 :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DMSARRAY :IVEC3 :INT32 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DMS :IVEC2 :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DMS :IVEC2 :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DMS :IVEC2 :INT32 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DARRAY :IVEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DARRAY :IVEC3 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2DARRAY :IVEC3 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2D :IVEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2D :IVEC2 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE2D :IVEC2 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE1DARRAY :IVEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE1DARRAY :IVEC2 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE1DARRAY :IVEC2 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE1D :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE1D :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :IIMAGE1D :INT32 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :BUFFERIMAGE :INT32 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :BUFFERIMAGE :INT32 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:IMAGESTORE :BUFFERIMAGE :INT32 :IVEC4)
Official GLSL Documentaion:
Name
imageStore — write a single texel into an image
Parameters
image
Specify the image unit into which to store a texel.
P
Specify the coordinate at which to store the texel.
sample
When present, specifies the sample within the image to store into.
data
Specifies the data to store into the image.
Description
imageStore stores data into the texel at the coordinate P from the image
specified by image. For multisample stores, the sample number is given by
sample. When image, P, and sample identify a valid texel, the bits used to
represent data are converted to the format of the image unit in the manner
described in of the OpenGL Specification and stored to the specified texel.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
imageStore         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

INT
Overloads:
(GLSLSYMBOLS.TYPES:INT :DOUBLE)
(GLSLSYMBOLS.TYPES:INT :FLOAT)
(GLSLSYMBOLS.TYPES:INT :BOOL)
(GLSLSYMBOLS.TYPES:INT :UINT32)
(GLSLSYMBOLS.TYPES:INT :INT32)

INTBITSTOFLOAT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:INTBITSTOFLOAT :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:INTBITSTOFLOAT :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:INTBITSTOFLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:INTBITSTOFLOAT :INT32)
Official GLSL Documentaion:
Name
intBitsToFloat, uintBitsToFloat — produce a floating point using an encoding
supplied as an integer
Parameters
x
Specifies the bit encoding to return as a floating point value.
Description
intBitsToFloat and uintBitsToFloat return the encoding passed in parameter x as
a floatingpoint value. If the encoding of a NaN is passed in x, it will not
signal and the resulting value will be undefined. If the encoding of a floating
point infinity is passed in parameter x, the resulting floatingpoint value is
the corresponding (positive or negative) floating point infinity.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
intBitsToFloat      ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

INTERPOLATEATCENTROID
Overloads:
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATCENTROID :VEC4)
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATCENTROID :VEC3)
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATCENTROID :VEC2)
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATCENTROID :FLOAT)
Official GLSL Documentaion:
Name
interpolateAtCentroid — sample a varying at the centroid of a pixel
Parameters
interpolant
Specifies the interpolant to be sampled at the pixel centroid.
Description
interpolateAtCentroid returns the value of the input varying interpolant
sampled at a location inside both the pixel and the primitive being processed.
The value obtained would be the value assigned to the input variable if
declared with the centroid qualifier.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
interpolateAtCentroid       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

INTERPOLATEATOFFSET
Overloads:
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATOFFSET :VEC4 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATOFFSET :VEC3 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATOFFSET :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATOFFSET :FLOAT :VEC2)
Official GLSL Documentaion:
Name
interpolateAtOffset — sample a varying at specified offset from the center of a
pixel
Parameters
interpolant
Specifies the interpolant to be sampled at the specified offset.
offset
Specifies the offset from the center of the pixel at which to sample
interpolant.
Description
interpolateAtOffset returns the value of the input varying interpolant sampled
at an offset from the center of the pixel specified by offset. The two
floatingpoint components of offset give the offset in pixels in the x and y
directions from the center of the pixel, respectively. An offset of (0, 0)
identifies the center of the pixel. The range and granularity of offsets
supported by this function is implementationdependent.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
interpolateAtoOffset       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

INTERPOLATEATSAMPLE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATSAMPLE :VEC4 :INT32)
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATSAMPLE :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATSAMPLE :VEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:INTERPOLATEATSAMPLE :FLOAT :INT32)
Official GLSL Documentaion:
Name
interpolateAtSample — sample a varying at the location of a specified sample
Parameters
interpolant
Specifies the interpolant to be sampled at the location of sample sample.
sample
Specifies the index of the sample whose location will be used to sample
interpolant.
Description
interpolateAtSample returns the value of the input varying interpolant sampled
at the location of sample number sample. If multisample buffers are not
available, the input varying will be evaluated at the center of the pixel. If
sample sample does not exist, the position used to interpolate the input
varying is undefined.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
interpolateAtSample       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

INVERSE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:INVERSE :MAT4)
(GLSLSYMBOLS.FUNCTIONS:INVERSE :MAT3)
(GLSLSYMBOLS.FUNCTIONS:INVERSE :MAT2)
(GLSLSYMBOLS.FUNCTIONS:INVERSE :DMAT4)
(GLSLSYMBOLS.FUNCTIONS:INVERSE :DMAT3)
(GLSLSYMBOLS.FUNCTIONS:INVERSE :DMAT2)
Official GLSL Documentaion:
Name
inverse — calculate the inverse of a matrix
Parameters
m
Specifies the matrix of which to take the inverse.
Description
inverse returns the inverse of the matrix m. The values in the returned matrix
are undefined if m is singular or poorlyconditioned (nearly singular).
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
inverse (float)    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
inverse (double)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

INVERSESQRT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:INVERSESQRT :VEC4)
(GLSLSYMBOLS.FUNCTIONS:INVERSESQRT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:INVERSESQRT :VEC2)
(GLSLSYMBOLS.FUNCTIONS:INVERSESQRT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:INVERSESQRT :DVEC4)
(GLSLSYMBOLS.FUNCTIONS:INVERSESQRT :DVEC3)
(GLSLSYMBOLS.FUNCTIONS:INVERSESQRT :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:INVERSESQRT :DOUBLE)
Official GLSL Documentaion:
Name
inversesqrt — return the inverse of the square root of the parameter
Parameters
x
Specify the value of which to take the inverse of the square root.
Description
inversesqrt returns the inverse of the square root of x. i.e., the value 1x.
Results are undefined if x≤0.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
inversesqrt (genType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
inversesqrt       ✔ ✔ ✔ ✔ ✔ ✔
(genDType)
Copyright © 20112014 Khronos Group

(
ISINF
8 overloads
)
func ISINF
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ISINF :VEC4)
(GLSLSYMBOLS.FUNCTIONS:ISINF :DVEC4)
(GLSLSYMBOLS.FUNCTIONS:ISINF :VEC3)
(GLSLSYMBOLS.FUNCTIONS:ISINF :DVEC3)
(GLSLSYMBOLS.FUNCTIONS:ISINF :VEC2)
(GLSLSYMBOLS.FUNCTIONS:ISINF :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:ISINF :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:ISINF :DOUBLE)
Official GLSL Documentaion:
Name
isinf — determine whether the parameter is positive or negative infinity
Parameters
x
Specifies the value to test for infinity.
Description
For each element element i of the result, isinf returns true if x[i] is
posititve or negative floating point infinity and false otherwise.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
isinf (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
isinf (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
ISNAN
8 overloads
)
func ISNAN
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ISNAN :VEC4)
(GLSLSYMBOLS.FUNCTIONS:ISNAN :DVEC4)
(GLSLSYMBOLS.FUNCTIONS:ISNAN :VEC3)
(GLSLSYMBOLS.FUNCTIONS:ISNAN :DVEC3)
(GLSLSYMBOLS.FUNCTIONS:ISNAN :VEC2)
(GLSLSYMBOLS.FUNCTIONS:ISNAN :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:ISNAN :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:ISNAN :DOUBLE)
Official GLSL Documentaion:
Name
isnan — determine whether the parameter is a number
Parameters
x
Specifies the value to test for NaN.
Description
For each element element i of the result, isinf returns true if x[i] is
posititve or negative floating point NaN (Not a Number) and false otherwise.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
isnan (genType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
isnan (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
IVEC2
0 overloads
)
func IVEC2
Overloads:
(GLSLSYMBOLS.TYPES:IVEC2 :INT32)
(GLSLSYMBOLS.TYPES:IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.TYPES:IVEC2 :VEC2)

(
IVEC3
0 overloads
)
func IVEC3
Overloads:
(GLSLSYMBOLS.TYPES:IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.TYPES:IVEC3 :INT32)
(GLSLSYMBOLS.TYPES:IVEC3 :INT32 :INT32 :INT32)
(GLSLSYMBOLS.TYPES:IVEC3 :IVEC2 :INT32)
(GLSLSYMBOLS.TYPES:IVEC3 :INT32 :IVEC2)
(GLSLSYMBOLS.TYPES:IVEC3 :VEC3)

(
IVEC4
0 overloads
)
func IVEC4
Overloads:
(GLSLSYMBOLS.TYPES:IVEC4 :INT32 :INT32 :INT32)
(GLSLSYMBOLS.TYPES:IVEC4 :INT32 :INT32)
(GLSLSYMBOLS.TYPES:IVEC4 :INT32)
(GLSLSYMBOLS.TYPES:IVEC4 :INT32 :INT32 :INT32 :INT32)
(GLSLSYMBOLS.TYPES:IVEC4 :INT32 :INT32 :IVEC2)
(GLSLSYMBOLS.TYPES:IVEC4 :INT32 :IVEC2 :INT32)
(GLSLSYMBOLS.TYPES:IVEC4 :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.TYPES:IVEC4 :IVEC3 :INT32)
(GLSLSYMBOLS.TYPES:IVEC4 :INT32 :IVEC3)
(GLSLSYMBOLS.TYPES:IVEC4 :IVEC2 :IVEC2)
(GLSLSYMBOLS.TYPES:IVEC4 :VEC4)


(
LDEXP
8 overloads
)
func LDEXP
Overloads:
(GLSLSYMBOLS.FUNCTIONS:LDEXP :VEC4 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:LDEXP :VEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:LDEXP :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:LDEXP :FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:LDEXP :DVEC4 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:LDEXP :DVEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:LDEXP :DVEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:LDEXP :DOUBLE :INT32)
Official GLSL Documentaion:
Name
ldexp — assemble a floating point number from a value and exponent
Parameters
x
Specifies the value to be used as a source of significand.
out exp
Specifies the value to be used as a source of exponent.
Description
ldexp builds a floating point number from x and the corresponding integral
exponent of two in exp, returning:
significand ⋅ 2 exponent
If this product is too large to be represented in the floating point type, the
result is undefined.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
ldexp (genType)       ✔ ✔ ✔ ✔ ✔ ✔
ldexp (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

LENGTH
Overloads:
(LENGTH VARI.TYPES:VARRAY)
(LENGTH :VEC4)
(LENGTH :VEC3)
(LENGTH :VEC2)
(LENGTH :FLOAT)
(LENGTH :DVEC2)
(LENGTH :DOUBLE)
Official GLSL Documentaion:
Name
length — calculate the length of a vector
Parameters
x
Specifies a vector of which to calculate the length.
Description
length returns the length of the vector. i.e., x[0] 2 + x[1] 2 + …
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
length (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
length (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

LESSTHAN
Overloads:
(GLSLSYMBOLS.FUNCTIONS:LESSTHAN :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:LESSTHAN :UVEC4 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:LESSTHAN :IVEC4 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:LESSTHAN :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:LESSTHAN :UVEC3 :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:LESSTHAN :IVEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:LESSTHAN :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:LESSTHAN :UVEC2 :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:LESSTHAN :IVEC2 :IVEC2)
Official GLSL Documentaion:
Name
lessThan — perform a componentwise lessthan comparison of two vectors
Parameters
x
Specifies the first vector to be used in the comparison operation.
y
Specifies the second vector to be used in the comparison operation.
Description
lessThan returns a boolean vector in which each element i is computed as x[i] <
y[i].
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
lessThan (vec) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
lessThan (ivec) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
lessThan (uvec)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

LESSTHANEQUAL
Overloads:
(GLSLSYMBOLS.FUNCTIONS:LESSTHANEQUAL :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:LESSTHANEQUAL :UVEC4 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:LESSTHANEQUAL :IVEC4 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:LESSTHANEQUAL :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:LESSTHANEQUAL :UVEC3 :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:LESSTHANEQUAL :IVEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:LESSTHANEQUAL :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:LESSTHANEQUAL :UVEC2 :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:LESSTHANEQUAL :IVEC2 :IVEC2)
Official GLSL Documentaion:
Name
lessThanEqual — perform a componentwise lessthanorequal comparison of two
vectors
Parameters
x
Specifies the first vector to be used in the comparison operation.
y
Specifies the second vector to be used in the comparison operation.
Description
lessThanEqual returns a boolean vector in which each element i is computed as x
[i] ≤ y[i].
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
lessThanEqual (vec) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
lessThanEqual ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(ivec)
lessThanEqual   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(uvec)
Copyright © 20112014 Khronos Group


LOG
Overloads:
(LOG :FLOAT :FLOAT)
(LOG :VEC4)
(LOG :VEC3)
(LOG :VEC2)
(LOG :FLOAT)
Official GLSL Documentaion:
Name
log — return the natural logarithm of the parameter
Parameters
x
Specify the value of which to take the natural logarithm.
Description
log returns the natural logarithm of x. i.e., the value y which satisfies x=ey.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
log (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
LOG2
4 overloads
)
func LOG2
Overloads:
(GLSLSYMBOLS.FUNCTIONS:LOG2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:LOG2 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:LOG2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:LOG2 :FLOAT)
Official GLSL Documentaion:
Name
log2 — return the base 2 logarithm of the parameter
Parameters
x
Specify the value of which to take the base 2 logarithm.
Description
log2 returns the base 2 logarithm of x. i.e., the value y which satisfies x=2y.
Results are undefined if x≤0.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
log2 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
MAT2
0 overloads
)
func MAT2
Overloads:
(GLSLSYMBOLS.TYPES:MAT2 :VEC2 :VEC2)
(GLSLSYMBOLS.TYPES:MAT2 :FLOAT :FLOAT :FLOAT :FLOAT)

(
MAT3
0 overloads
)
func MAT3
Overloads:
(GLSLSYMBOLS.TYPES:MAT3 :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.TYPES:MAT3 :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT
:FLOAT :FLOAT)

(
MAT4
0 overloads
)
func MAT4
Overloads:
(GLSLSYMBOLS.TYPES:MAT4 :VEC4 :VEC4 :VEC4 :VEC4)
(GLSLSYMBOLS.TYPES:MAT4 :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT
:FLOAT :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT :FLOAT)

MATRIXCOMPMULT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT4X4 :MAT4X4)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT4X3 :MAT4X3)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT4X2 :MAT4X2)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT4 :MAT4)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT3X4 :MAT3X4)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT3X3 :MAT3X3)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT3X2 :MAT3X2)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT3 :MAT3)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT2X4 :MAT2X4)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT2X3 :MAT2X3)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT2X2 :MAT2X2)
(GLSLSYMBOLS.FUNCTIONS:MATRIXCOMPMULT :MAT2 :MAT2)
Official GLSL Documentaion:
Name
matrixCompMult — perform a componentwise multiplication of two matrices
Parameters
x
Specifies the first matrix multiplicand.
y
Specifies the second matrix multiplicand.
Description
matrixCompMult performs a componentwise multiplication of two matrices,
yielding a result matrix where each component, result[i][j] is computed as the
scalar product of x[i][j] and y[i][j].
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
matrixCompMult ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(genType)
matrixCompMult       ✔ ✔ ✔ ✔ ✔ ✔
(genDType)
Copyright © 20112014 Khronos Group

(
MAX
32 overloads
)
func MAX
Overloads:
(MAX :VEC4 :VEC4)
(MAX :VEC4 :FLOAT)
(MAX :VEC3 :VEC3)
(MAX :VEC3 :FLOAT)
(MAX :VEC2 :VEC2)
(MAX :VEC2 :FLOAT)
(MAX :UVEC4 :UVEC4)
(MAX :UVEC4 :UINT32)
(MAX :UVEC3 :UVEC3)
(MAX :UVEC3 :UINT32)
(MAX :UVEC2 :UVEC2)
(MAX :UVEC2 :UINT32)
(MAX :UINT32 :UINT32)
(MAX :IVEC4 :IVEC4)
(MAX :IVEC4 :INT32)
(MAX :IVEC3 :IVEC3)
(MAX :IVEC3 :INT32)
(MAX :IVEC2 :IVEC2)
(MAX :IVEC2 :INT32)
(MAX :INT32 :INT32)
(MAX :FLOAT :FLOAT)
(MAX :DVEC4 :DVEC4)
(MAX :DVEC4 :DOUBLE)
(MAX :DVEC3 :DVEC3)
(MAX :DVEC3 :DOUBLE)
(MAX :DVEC2 :DVEC2)
(MAX :DVEC2 :DOUBLE)
(MAX :DOUBLE :DOUBLE)
(MAX :UVEC4)
(MAX :UVEC3)
(MAX :UVEC2)
(MAX :UINT32)
(MAX :IVEC4)
(MAX :IVEC3)
(MAX :IVEC2)
(MAX :INT32)
(MAX :VEC4)
(MAX :VEC3)
(MAX :VEC2)
(MAX :FLOAT)
Official GLSL Documentaion:
Name
max — return the greater of two values
Parameters
x
Specify the first value to compare.
y
Specify the second value to compare.
Description
max returns the maximum of the two parameters. It returns y if y is greater
than x, otherwise it returns x.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
max (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
max (genIType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
max (genUType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
max (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

MEMORYBARRIER
Overloads:
(GLSLSYMBOLS.FUNCTIONS:MEMORYBARRIER)
Official GLSL Documentaion:
Name
memoryBarrier — controls the ordering of memory transactions issued by a single
shader invocation
Declaration
uint memoryBarrier( void);
Description
memoryBarrier waits on the completion of all memory accesses resulting from the
use of image variables or atomic counters and then returns with no other
effect. When this function returns, the results of any memory stores performed
using coherent variables performed prior to the call will be visible to any
future coherent memory access to the same addresses from other shader
invocations. In particular, the values written this way in one shader stage are
guaranteed to be visible to coherent memory accesses performed by shader
invocations in subsequent stages when those invocations were triggered by the
execution of the original shader invocation (e.g., fragment shader invocations
for a primitive resulting from a particular geometry shader invocation).
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
memoryBarrier       ✔ ✔ ✔ ✔ ✔ ✔
See Also
imageLoad, imageStore, imageAtomicAdd, imageAtomicMin, imageAtomicMax,
imageAtomicXor, imageAtomicOr, imageAtomicAnd, imageAtomicExchange,
imageAtomicCompSwap, groupMemoryBarrier, memoryBarrierImage,
memoryBarrierBuffer, memoryBarrierShared
Copyright © 20112014 Khronos Group

MEMORYBARRIERATOMICCOUNTER
Overloads:
(GLSLSYMBOLS.FUNCTIONS:MEMORYBARRIERATOMICCOUNTER)
Official GLSL Documentaion:
Name
memoryBarrierAtomicCounter — controls the ordering of operations on atomic
counters issued by a single shader invocation
Declaration
void memoryBarrierAtomicCounter( void);
Description
memoryBarrierAtomicCounter waits on the completion of all accesses resulting
from the use of atomic counters and then returns with no other effect. When
this function returns, the results of any modifications to the value of atomic
counters will be visible to any access to the same counter from other shader
invocations. In particular, any modifications made in one shader stage are
guaranteed to be visible to accesses performed by shader invocations in
subsequent stages when those invocations were triggered by the execution of the
original shader invocation (e.g., fragment shader invocations for a primitive
resulting from a particular geometry shader invocation).
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
memoryBarrierAtomicCounter          ✔ ✔ ✔
See Also
memoryBarrier
Copyright © 20112014 Khronos Group

MEMORYBARRIERBUFFER
Overloads:
(GLSLSYMBOLS.FUNCTIONS:MEMORYBARRIERBUFFER)
Official GLSL Documentaion:
Name
memoryBarrierBuffer — controls the ordering of operations on buffer variables
issued by a single shader invocation
Declaration
void memoryBarrierBuffer( void);
Description
memoryBarrierBuffer waits on the completion of all memory accesses resulting
from the use of buffer variables and then returns with no other effect. When
this function returns, the results of any modifications to the content of
buffer variables will be visible to any access to the same buffer from other
shader invocations. In particular, any modifications made in one shader stage
are guaranteed to be visible to accesses performed by shader invocations in
subsequent stages when those invocations were triggered by the execution of the
original shader invocation (e.g., fragment shader invocations for a primitive
resulting from a particular geometry shader invocation).
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
memoryBarrierBuffer          ✔ ✔ ✔
See Also
memoryBarrier, memoryBarrierImage, memoryBarrierShared, groupMemoryBarrier
Copyright © 20112014 Khronos Group

MEMORYBARRIERIMAGE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:MEMORYBARRIERIMAGE)
Official GLSL Documentaion:
Name
memoryBarrierImage — controls the ordering of operations on image variables
issued by a single shader invocation
Declaration
void memoryBarrierImage( void);
Description
memoryBarrierImage waits on the completion of all memory accesses resulting
from the use of image variables and then returns with no other effect. When
this function returns, the results of any modifications to the content of image
variables will be visible to any access to the same buffer from other shader
invocations. In particular, any modifications made in one shader stage are
guaranteed to be visible to accesses performed by shader invocations in
subsequent stages when those invocations were triggered by the execution of the
original shader invocation (e.g., fragment shader invocations for a primitive
resulting from a particular geometry shader invocation).
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
memoryBarrierImage          ✔ ✔ ✔
See Also
memoryBarrier, memoryBarrierShared, memoryBarrierBuffer, groupMemoryBarrier
Copyright © 20112014 Khronos Group

MEMORYBARRIERSHARED
Overloads:
(GLSLSYMBOLS.FUNCTIONS:MEMORYBARRIERSHARED)
Official GLSL Documentaion:
Name
memoryBarrierShared — controls the ordering of operations on shared variables
issued by a single shader invocation
Declaration
void memoryBarrierShared( void);
Description
memoryBarrierShared waits on the completion of all memory accesses resulting
from the use of shared variables and then returns with no other effect. When
this function returns, the results of any modifications to the content of
shared variables will be visible to any access to the same buffer from other
shader invocations. In particular, any modifications made in one shader stage
are guaranteed to be visible to accesses performed by shader invocations in
subsequent stages when those invocations were triggered by the execution of the
original shader invocation (e.g., fragment shader invocations for a primitive
resulting from a particular geometry shader invocation).
memoryBarrierShared is available only in the compute language.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
memoryBarrierShared          ✔ ✔ ✔
See Also
memoryBarrier, memoryBarrierImage, memoryBarrierBuffer, groupMemoryBarrier
Copyright © 20112014 Khronos Group

(
MIN
32 overloads
)
func MIN
Overloads:
(MIN :VEC4 :VEC4)
(MIN :VEC4 :FLOAT)
(MIN :VEC3 :VEC3)
(MIN :VEC3 :FLOAT)
(MIN :VEC2 :VEC2)
(MIN :VEC2 :FLOAT)
(MIN :UVEC4 :UVEC4)
(MIN :UVEC4 :UINT32)
(MIN :UVEC3 :UVEC3)
(MIN :UVEC3 :UINT32)
(MIN :UVEC2 :UVEC2)
(MIN :UVEC2 :UINT32)
(MIN :UINT32 :UINT32)
(MIN :IVEC4 :IVEC4)
(MIN :IVEC4 :INT32)
(MIN :IVEC3 :IVEC3)
(MIN :IVEC3 :INT32)
(MIN :IVEC2 :IVEC2)
(MIN :IVEC2 :INT32)
(MIN :INT32 :INT32)
(MIN :FLOAT :FLOAT)
(MIN :DVEC4 :DVEC4)
(MIN :DVEC4 :DOUBLE)
(MIN :DVEC3 :DVEC3)
(MIN :DVEC3 :DOUBLE)
(MIN :DVEC2 :DVEC2)
(MIN :DVEC2 :DOUBLE)
(MIN :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
min — return the lesser of two values
Parameters
x
Specify the first value to compare.
y
Specify the second value to compare.
Description
min returns the minimum of the two parameters. It returns y if y is less than x
, otherwise it returns x.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
min (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
min (genIType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
min (genUType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
min (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
MIX
26 overloads
)
func MIX
Overloads:
(GLSLSYMBOLS.FUNCTIONS:MIX :VEC4 :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:MIX :VEC4 :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:MIX :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:MIX :VEC3 :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:MIX :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:MIX :VEC2 :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:MIX :UVEC4 :UVEC4 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:MIX :UVEC3 :UVEC3 :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:MIX :UVEC2 :UVEC2 :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:MIX :UINT32 :UINT32 :UINT32)
(GLSLSYMBOLS.FUNCTIONS:MIX :IVEC4 :IVEC4 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:MIX :IVEC3 :IVEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:MIX :IVEC2 :IVEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:MIX :INT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:MIX :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:MIX :DVEC4 :DVEC4 :DVEC4)
(GLSLSYMBOLS.FUNCTIONS:MIX :DVEC4 :DVEC4 :DOUBLE)
(GLSLSYMBOLS.FUNCTIONS:MIX :DVEC3 :DVEC3 :DVEC3)
(GLSLSYMBOLS.FUNCTIONS:MIX :DVEC3 :DVEC3 :DOUBLE)
(GLSLSYMBOLS.FUNCTIONS:MIX :DVEC2 :DVEC2 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:MIX :DVEC2 :DVEC2 :DOUBLE)
(GLSLSYMBOLS.FUNCTIONS:MIX :DOUBLE :DOUBLE :DOUBLE)
(GLSLSYMBOLS.FUNCTIONS:MIX :BVEC4 :BVEC4 :BVEC4)
(GLSLSYMBOLS.FUNCTIONS:MIX :BVEC3 :BVEC3 :BVEC3)
(GLSLSYMBOLS.FUNCTIONS:MIX :BVEC2 :BVEC2 :BVEC2)
(GLSLSYMBOLS.FUNCTIONS:MIX :BOOL :BOOL :BOOL)
Official GLSL Documentaion:
Name
mix — linearly interpolate between two values
Parameters
x
Specify the start of the range in which to interpolate.
y
Specify the end of the range in which to interpolate.
a
Specify the value to use to interpolate between x and y.
Description
mix performs a linear interpolation between x and y using a to weight between
them. The return value is computed as $x \times (1  a) + y \times a$.
The variants of mix where a is genBType select which vector each returned
component comes from. For a component of a that is false, the corresponding
component of x is returned. For a component of a that is true, the
corresponding component of y is returned. Components of x and y that are not
selected are allowed to be invalid floatingpoint values and will have no
effect on the results.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
mix(genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
mix(genDType)       ✔ ✔ ✔ ✔ ✔ ✔
mix(genIType), mix
(genUType), mix            ✔
(genBType)
Copyright © 20112014 Khronos Group

MOD
Overloads:
(MOD :VEC4 :FLOAT)
(MOD :VEC3 :FLOAT)
(MOD :VEC2 :FLOAT)
(MOD :FLOAT :FLOAT)
(MOD :DVEC4 :DOUBLE)
(MOD :DVEC3 :DOUBLE)
(MOD :DVEC2 :DOUBLE)
(MOD :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
mod — compute value of one parameter modulo another
Parameters
x
Specify the value to evaluate.
Description
mod returns the value of x modulo y. This is computed as x  y * floor(x/y).
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
mod (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
mod (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
MULTF
0 overloads
)
func 
(
NEAR
0 overloads
)
func NEAR
Overloads:
(VARI.GLSL:NEAR VARI.GLSL::VDEPTHRANGEPARAMETERS)

NOISE1
Overloads:
(GLSLSYMBOLS.FUNCTIONS:NOISE1 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:NOISE1 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:NOISE1 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:NOISE1 :FLOAT)

NOISE2
Overloads:
(GLSLSYMBOLS.FUNCTIONS:NOISE2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:NOISE2 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:NOISE2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:NOISE2 :FLOAT)

NOISE3
Overloads:
(GLSLSYMBOLS.FUNCTIONS:NOISE3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:NOISE3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:NOISE3 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:NOISE3 :FLOAT)

NOISE4
Overloads:
(GLSLSYMBOLS.FUNCTIONS:NOISE4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:NOISE4 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:NOISE4 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:NOISE4 :FLOAT)

NORMALIZE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:NORMALIZE :VEC4)
(GLSLSYMBOLS.FUNCTIONS:NORMALIZE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:NORMALIZE :VEC2)
(GLSLSYMBOLS.FUNCTIONS:NORMALIZE :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:NORMALIZE :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:NORMALIZE :DOUBLE)
Official GLSL Documentaion:
Name
normalize — calculate the normalize product of two vectors
Parameters
v
Specifies the vector to normalize.
Description
normalize returns a vector with the same direction as its parameter, v, but
with length 1.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
normalize (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
normalize       ✔ ✔ ✔ ✔ ✔ ✔
(genDType)
Copyright © 20112014 Khronos Group

NOT
Overloads:
(NOT VARI.TYPES:VTYPE)
(NOT :BOOL)
(NOT :BVEC4)
(NOT :BVEC3)
(NOT :BVEC2)
Official GLSL Documentaion:
Name
not — logically invert a boolean vector
Parameters
x
Specifies the vector to be inverted.
Description
not logically inverts the boolean vector x. It returns a new boolean vector for
which each element i is computed as !x[i].
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
not ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

NOTEQUAL
Overloads:
(GLSLSYMBOLS.FUNCTIONS:NOTEQUAL :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:NOTEQUAL :UVEC4 :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:NOTEQUAL :IVEC4 :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:NOTEQUAL :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:NOTEQUAL :UVEC3 :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:NOTEQUAL :IVEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:NOTEQUAL :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:NOTEQUAL :UVEC2 :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:NOTEQUAL :IVEC2 :IVEC2)
Official GLSL Documentaion:
Name
notEqual — perform a componentwise notequalto comparison of two vectors
Parameters
x
Specifies the first vector to be used in the comparison operation.
y
Specifies the second vector to be used in the comparison operation.
Description
notEqual returns a boolean vector in which each element i is computed as x[i] !
= y[i].
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
notEqual (vec) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
notEqual (ivec)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
notEqual (uvec)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

OUTERPRODUCT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :VEC3 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :VEC2 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :VEC4 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :VEC2 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :VEC4 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :VEC3 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :DVEC3 :DVEC4)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :DVEC2 :DVEC4)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :DVEC4 :DVEC4)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :DVEC4 :DVEC3)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :DVEC2 :DVEC3)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :DVEC3 :DVEC3)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :DVEC4 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :DVEC3 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:OUTERPRODUCT :DVEC2 :DVEC2)
Official GLSL Documentaion:
Name
outerProduct — calculate the outer product of a pair of vectors
Parameters
c
Specifies the parameter to be treated as a column vector.
r
Specifies the parameter to be treated as a row vector.
Description
outerProduct treats the first parameter c as a column vector (matrix with one
column) and the second parameter r as a row vector (matrix with one row) and
does a linear algebraic matrix multiply c * r, yielding a matrix whose number
of rows is the number of components in c and whose number of columns is the
number of components in r.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
outerProduct (float)  ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
outerProduct       ✔ ✔ ✔ ✔ ✔ ✔
(double)
Copyright © 20112014 Khronos Group

PACKDOUBLE2X32
Overloads:
(GLSLSYMBOLS.FUNCTIONS:PACKDOUBLE2X32 :UVEC2)
Official GLSL Documentaion:
Name
packDouble2x32 — create a doubleprecision value from a pair of unsigned
integers
Parameters
v
Specifies a vector of two unsigned integers to be packed into a single
doubleprecision result.
Description
packDouble2x32 packs the component of parameter v into a 64bit value. If an
IEEE754 infinity or NaN is created, it will not signal and the resulting
floatingpoint value is undefined. Otherwise, the bitlevel representation of v
is preserved. The first vector component (v[0]) specifies the 32 least
significant bits of the result; the second component (v[1]) specifies the 32
most significant bits.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
packDouble2x32       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

PACKHALF2X16
Overloads:
(GLSLSYMBOLS.FUNCTIONS:PACKHALF2X16 :VEC2)
Official GLSL Documentaion:
Name
packHalf2x16 — convert two 32bit floatingpoint quantities to 16bit
quantities and pack them into a single 32bit integer
Parameters
v
Specify a vector of two 32bit floating point values that are to be
converted to 16bit representation and packed into the result.
Description
packHalf2x16 returns an unsigned integer obtained by converting the components
of a twocomponent floatingpoint vector to the 16bit floatingpoint
representation found in the OpenGL Specification, and then packing these two
16bit integers into a 32bit unsigned integer. The first vector component
specifies the 16 leastsignificant bits of the result; the second component
specifies the 16 mostsignificant bits.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
packHalf2x16         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

PACKSNORM2X16
Overloads:
(GLSLSYMBOLS.FUNCTIONS:PACKSNORM2X16 :VEC2)

PACKSNORM4X8
Overloads:
(GLSLSYMBOLS.FUNCTIONS:PACKSNORM4X8 :VEC4)

PACKUNORM2X16
Overloads:
(GLSLSYMBOLS.FUNCTIONS:PACKUNORM2X16 :VEC2)

PACKUNORM4X8
Overloads:
(GLSLSYMBOLS.FUNCTIONS:PACKUNORM4X8 :VEC4)

POW
Overloads:
(GLSLSYMBOLS.FUNCTIONS:POW :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:POW :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:POW :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:POW :FLOAT :FLOAT)
Official GLSL Documentaion:
Name
pow — return the value of the first parameter raised to the power of the second
Parameters
x
Specify the value to raise to the power y.
y
Specify the power to which to raise x.
Description
pow returns the value of x raised to the y power. i.e., xy. Results are
undefined if x< or if x=0 and y=0.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
pow ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

RADIANS
Overloads:
(GLSLSYMBOLS.FUNCTIONS:RADIANS :VEC4)
(GLSLSYMBOLS.FUNCTIONS:RADIANS :VEC3)
(GLSLSYMBOLS.FUNCTIONS:RADIANS :VEC2)
(GLSLSYMBOLS.FUNCTIONS:RADIANS :FLOAT)
Official GLSL Documentaion:
Name
radians — convert a quantity in degrees to radians
Parameters
degrees
Specify the quantity, in degrees, to be converted to radians.
Description
radians converts a quantity, specified in degrees into radians. That is, the
return value is π⋅degrees 180 .
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
radians ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

REFLECT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:REFLECT :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:REFLECT :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:REFLECT :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:REFLECT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:REFLECT :DVEC2 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:REFLECT :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
reflect — calculate the reflection direction for an incident vector
Parameters
I
Specifies the incident vector.
N
Specifies the normal vector.
Description
For a given incident vector I and surface normal N reflect returns the
reflection direction calculated as I  2.0 * dot(N, I) * N.
N should be normalized in order to achieve the desired result.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
reflect (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
reflect (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

REFRACT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:REFRACT :VEC4 :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:REFRACT :VEC3 :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:REFRACT :VEC2 :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:REFRACT :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:REFRACT :DVEC2 :DVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:REFRACT :DOUBLE :DOUBLE :FLOAT)
Official GLSL Documentaion:
Name
refract — calculate the refraction direction for an incident vector
Parameters
I
Specifies the incident vector.
N
Specifies the normal vector.
eta
Specifies the ratio of indices of refraction.
Description
For a given incident vector I, surface normal N and ratio of indices of
refraction, eta, refract returns the refraction vector, R.
R is calculated as:
k = 1.0  eta * eta * (1.0  dot(N, I) * dot(N, I));
if (k < 0.0)
R = genType(0.0); // or genDType(0.0)
else
R = eta * I  (eta * dot(N, I) + sqrt(k)) * N;
The input parameters I and N should be normalized in order to achieve the
desired result.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
refract (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
refract (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
ROUND
6 overloads
)
func ROUND
Overloads:
(ROUND :VEC4)
(ROUND :VEC3)
(ROUND :VEC2)
(ROUND :FLOAT)
(ROUND :DVEC2)
(ROUND :DOUBLE)
Official GLSL Documentaion:
Name
round — find the nearest integer less than or equal to the parameter
Parameters
x
Specify the value to evaluate.
Description
round returns a value equal to the nearest integer to x. The fraction 0.5 will
round in a direction chosen by the implementation, presumably the direction
that is fastest. This includes the possibility that round(x) returns the same
value as roundEven(x) for all values of x.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
round (genType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
round (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

ROUNDEVEN
Overloads:
(GLSLSYMBOLS.FUNCTIONS:ROUNDEVEN :VEC4)
(GLSLSYMBOLS.FUNCTIONS:ROUNDEVEN :VEC3)
(GLSLSYMBOLS.FUNCTIONS:ROUNDEVEN :VEC2)
(GLSLSYMBOLS.FUNCTIONS:ROUNDEVEN :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:ROUNDEVEN :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:ROUNDEVEN :DOUBLE)
Official GLSL Documentaion:
Name
roundEven — find the nearest even integer to the parameter
Parameters
x
Specify the value to evaluate.
Description
roundEven returns a value equal to the nearest integer to x. The fractional
part of 0.5 will round toward the nearest even integer. For example, both 3.5
and 4.5 will round to 4.0.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
roundEven (genType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
roundEven       ✔ ✔ ✔ ✔ ✔ ✔
(genDType)
Copyright © 20112014 Khronos Group

(
SIGN
10 overloads
)
func SIGN
Overloads:
(GLSLSYMBOLS.FUNCTIONS:SIGN :VEC4)
(GLSLSYMBOLS.FUNCTIONS:SIGN :VEC3)
(GLSLSYMBOLS.FUNCTIONS:SIGN :VEC2)
(GLSLSYMBOLS.FUNCTIONS:SIGN :IVEC4)
(GLSLSYMBOLS.FUNCTIONS:SIGN :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:SIGN :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:SIGN :INT32)
(GLSLSYMBOLS.FUNCTIONS:SIGN :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:SIGN :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:SIGN :DOUBLE)
Official GLSL Documentaion:
Name
sign — extract the sign of the parameter
Parameters
x
Specify the value from which to extract the sign.
Description
sign returns 1.0 if x is less than 0.0, 0.0 if x is equal to 0.0, and +1.0 if
x is greater than 0.0.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
sign (genType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
sign (genIType)     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
sign (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

SIN
Overloads:
(SIN :VEC4)
(SIN :VEC3)
(SIN :VEC2)
(SIN :FLOAT)
Official GLSL Documentaion:
Name
sin — return the sine of the parameter
Parameters
angle
Specify the quantity, in radians, of which to return the sine.
Description
sin returns the trigonometric sine of angle.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
sin ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
SINH
4 overloads
)
func SINH
Overloads:
(SINH :VEC4)
(SINH :VEC3)
(SINH :VEC2)
(SINH :FLOAT)
Official GLSL Documentaion:
Name
sinh — return the hyperbolic sine of the parameter
Parameters
x
Specify the value whose hyperbolic sine to return.
Description
sinh returns the hyperbolic sine of x. The hyperbolic sine of x is computed as
e x − e − x 2 .
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
sinh   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

SMOOTHSTEP
Overloads:
(GLSLSYMBOLS.FUNCTIONS:SMOOTHSTEP :VEC4 :VEC4 :VEC4)
(GLSLSYMBOLS.FUNCTIONS:SMOOTHSTEP :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:SMOOTHSTEP :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:SMOOTHSTEP :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:SMOOTHSTEP :DVEC2 :DVEC2 :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:SMOOTHSTEP :DOUBLE :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
smoothstep — perform Hermite interpolation between two values
Parameters
edge0
Specifies the value of the lower edge of the Hermite function.
edge1
Specifies the value of the upper edge of the Hermite function.
x
Specifies the source value for interpolation.
Description
smoothstep performs smooth Hermite interpolation between 0 and 1 when edge0 < x
< edge1. This is useful in cases where a threshold function with a smooth
transition is desired. smoothstep is equivalent to:
genType t; /* Or genDType t; */
t = clamp((x  edge0) / (edge1  edge0), 0.0, 1.0);
return t * t * (3.0  2.0 * t);
Results are undefined if edge0 ≥ edge1.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
smoothstep (genType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
smoothstep       ✔ ✔ ✔ ✔ ✔ ✔
(genDType)
Copyright © 20112014 Khronos Group

(
SQRT
6 overloads
)
func SQRT
Overloads:
(SQRT :VEC4)
(SQRT :VEC3)
(SQRT :VEC2)
(SQRT :FLOAT)
(SQRT :DVEC2)
(SQRT :DOUBLE)
Official GLSL Documentaion:
Name
sqrt — return the square root of the parameter
Parameters
x
Specify the value of which to take the square root.
Description
sqrt returns the square root of x. i.e., the value x. Results are undefined if
x<0.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
sqrt (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
sqrt (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
STEP
6 overloads
)
func STEP
Overloads:
(STEP :VEC4 :VEC4)
(STEP :VEC3 :VEC3)
(STEP :VEC2 :VEC2)
(STEP :FLOAT :FLOAT)
(STEP :DVEC2 :DVEC2)
(STEP :DOUBLE :DOUBLE)
Official GLSL Documentaion:
Name
step — generate a step function by comparing two values
Parameters
edge
Specifies the location of the edge of the step function.
x
Specify the value to be used to generate the step function.
Description
step generates a step function by comparing x to edge.
For element i of the return value, 0.0 is returned if x[i] < edge[i], and 1.0
is returned otherwise.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
step (genType) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
step (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group



TAN
Overloads:
(TAN :VEC4)
(TAN :VEC3)
(TAN :VEC2)
(TAN :FLOAT)
Official GLSL Documentaion:
Name
tan — return the tangent of the parameter
Parameters
angle
Specify the quantity, in radians, of which to return the tangent.
Description
tan returns the trigonometric tangent of angle.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
tan ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
TANH
4 overloads
)
func TANH
Overloads:
(TANH :VEC4)
(TANH :VEC3)
(TANH :VEC2)
(TANH :FLOAT)
Official GLSL Documentaion:
Name
tanh — return the hyperbolic tangent of the parameter
Parameters
x
Specify the value whose hyperbolic tangent to return.
Description
tanh returns the hyperbolic tangent of x. The hyperbolic tangent of x is
computed as sinh x cosh x .
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
tanh   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

TEXELFETCH
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :SAMPLERBUFFER :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :SAMPLER3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :SAMPLER2DRECT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :SAMPLER2DMSARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :SAMPLER2DMS :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :SAMPLER2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :SAMPLER2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :SAMPLER1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :SAMPLER1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :USAMPLERBUFFER :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :USAMPLER3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :USAMPLER2DRECT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :USAMPLER2DMS :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :USAMPLER2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :USAMPLER2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :USAMPLER1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :USAMPLER1D :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :ISAMPLERBUFFER :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :ISAMPLER3D :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :ISAMPLER2DRECT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :ISAMPLER2DMS :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :ISAMPLER2DARRAY :IVEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :ISAMPLER2D :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :ISAMPLER1DARRAY :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCH :ISAMPLER1D :INT32 :INT32)
Official GLSL Documentaion:
Name
texelFetch — perform a lookup of a single texel within a texture
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
lod
If present, specifies the levelofdetail within the texture from which the
texel will be fetched.
sample
For multisampled fetches, specifies which sample within the texel from
which which will be returned.
Description
texelFetch performs a lookup of a single texel from texture coordinate P in the
texture bound to sampler. The array layer is specified in the last component of
P for array forms. The lod parameter (if present) specifies the levelofdetail
from which the texel will be fetched. The sample specifies which sample within
the texel will be returned when reading from a multisample texure.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
texelFetch   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
texelFetch
(gsampler2DRect,    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
gsamplerBuffer)
texelFetch
(gsampler2DMS,     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
gsampler2DMSArray)
Copyright © 20112014 Khronos Group

TEXELFETCHOFFSET
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :SAMPLER3D :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :SAMPLER2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :SAMPLER2DARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :SAMPLER2D :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :SAMPLER1DARRAY :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :SAMPLER1D :INT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :USAMPLER3D :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :USAMPLER2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :USAMPLER2DARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :USAMPLER2D :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :USAMPLER1DARRAY :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :USAMPLER1D :INT32 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :ISAMPLER3D :IVEC3 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :ISAMPLER2DRECT :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :ISAMPLER2DARRAY :IVEC3 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :ISAMPLER2D :IVEC2 :INT32 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :ISAMPLER1DARRAY :IVEC2 :INT32
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXELFETCHOFFSET :ISAMPLER1D :INT32 :INT32 :INT32)
Official GLSL Documentaion:
Name
texelFetchOffset — perform a lookup of a single texel within a texture with an
offset
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
lod
If present, specifies the levelofdetail within the texture from which the
texel will be fetched.
offset
Specifies offset, in texels that will be applied to P before looking up the
texel.
Description
texelFetchOffset performs a lookup of a single texel from texture coordinate P
in the texture bound to sampler. Before fetching the texel, the offset
specified in offset is added to P. offset must be a constant expression. The
array layer is specified in the last component of P for array forms. The lod
parameter (if present) specifies the levelofdetail from which the texel will
be fetched. The sample parameter specifies which sample within the texel will
be returned when reading from a multisample texure.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
texelFetchOffset   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
texelFetchOffset    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(gsampler2DRect)
texelFetchOffset
(gsampler2DMS,     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
gsampler2DMSArray)
Copyright © 20112014 Khronos Group

TEXTURE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLERCUBEARRAY :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLERCUBEARRAY :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLERCUBE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLERCUBE :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER3D :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER3D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2DRECT :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2DARRAY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2DARRAY :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER1DARRAY :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER1DARRAY :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER1D :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER1D :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLERCUBEARRAY :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLERCUBEARRAY :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLERCUBE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLERCUBE :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER3D :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER3D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER2DRECT :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER2DARRAY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER2DARRAY :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER2D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER2D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER1DARRAY :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER1DARRAY :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER1D :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :USAMPLER1D :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLERCUBEARRAY :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLERCUBEARRAY :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLERCUBE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLERCUBE :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER3D :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER3D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER2DRECT :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER2DARRAY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER2DARRAY :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER2D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER2D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER1DARRAY :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER1DARRAY :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER1D :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :ISAMPLER1D :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLERCUBESHADOW :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLERCUBESHADOW :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLERCUBEARRAYSHADOW :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2DSHADOW :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2DSHADOW :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2DRECTSHADOW :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2DARRAYSHADOW :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER2DARRAYSHADOW :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER1DSHADOW :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER1DSHADOW :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER1DARRAYSHADOW :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURE :SAMPLER1DARRAYSHADOW :VEC3 :FLOAT)
Official GLSL Documentaion:
Name
texture — retrieves texels from a texture
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
bias
Specifies an optional bias to be applied during levelofdetail
computation.
compare
Specifies the value to which the fetched texel will be compared when
sampling from gsamplerCubeArrayShadow.
Description
texture samples texels from the texture bound to sampler at texture coordinate
P. An optional bias, specified in bias is included in the levelofdetail
computation that is used to choose mipmap(s) from which to sample.
For shadow forms, when compare is present, it is used as Dsub and the array
layer is specified in P.w. When compare is not present, the last component of P
is used as Dsub and the array layer is specified in the second to last
component of P. (The second component of P is unused for 1D shadow lookups.)
For nonshadow variants, the array layer comes from the last component of P.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
texture   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
texture
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
texture
(gsampler2DMS,     ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
gsampler2DMSArray)
texture
(gsamplerCubeArray       ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
Copyright © 20112014 Khronos Group

TEXTUREGATHER
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLERCUBESHADOW :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLERCUBEARRAYSHADOW :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLERCUBEARRAY :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLERCUBEARRAY :VEC4 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLERCUBE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLERCUBE :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLER2DSHADOW :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLER2DRECTSHADOW :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLER2DRECT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLER2DRECT :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLER2DARRAYSHADOW :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLER2DARRAY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLER2DARRAY :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLER2D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :SAMPLER2D :VEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLERCUBEARRAY :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLERCUBEARRAY :VEC4 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLERCUBE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLERCUBE :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLER2DRECT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLER2DRECT :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLER2DARRAY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLER2DARRAY :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLER2D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :USAMPLER2D :VEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLERCUBEARRAY :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLERCUBEARRAY :VEC4 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLERCUBE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLERCUBE :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLER2DRECT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLER2DRECT :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLER2DARRAY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLER2DARRAY :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLER2D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHER :ISAMPLER2D :VEC2 :INT32)
Official GLSL Documentaion:
Name
textureGather — gathers four texels from a texture
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
comp
Specifies the component of the source texture that will be used to generate
the resulting vector.
refZ
Specifies the reference Z value used in the comparison for shadow forms.
Description
textureGather returns the value:
vec4(Sample_i0_j1(P, base).comp,
Sample_i1_j1(P, base).comp,
Sample_i1_j0(P, base).comp,
Sample_i0_j0(P, base).comp);
If specified, the value of comp must ba constant integer expression with a
value of 0, 1, 2, or 3, identifying the x, y, z or w component of the
fourcomponent vector lookup result for each texel, respectively. If comp is
not specified, it is treated as 0, selecting the x component of each texel to
generate the result.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureGather       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

TEXTUREGATHEROFFSET
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :SAMPLER2DSHADOW :VEC2 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :SAMPLER2DRECTSHADOW :VEC3
:FLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :SAMPLER2DRECT :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :SAMPLER2DRECT :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :SAMPLER2DARRAYSHADOW :VEC3
:FLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :SAMPLER2DARRAY :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :SAMPLER2DARRAY :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :SAMPLER2D :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :SAMPLER2D :VEC2 :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :USAMPLER2DRECT :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :USAMPLER2DRECT :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :USAMPLER2DARRAY :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :USAMPLER2DARRAY :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :USAMPLER2D :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :USAMPLER2D :VEC2 :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :ISAMPLER2DRECT :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :ISAMPLER2DRECT :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :ISAMPLER2DARRAY :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :ISAMPLER2DARRAY :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :ISAMPLER2D :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSET :ISAMPLER2D :VEC2 :IVEC2 :INT32)
Official GLSL Documentaion:
Name
textureGatherOffset — gathers four texels from a texture with offset
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
comp
Specifies the component of the source texture that will be used to generate
the resulting vector.
refZ
Specifies the reference Z value used in the comparison for shadow forms.
offset
Specifies the offset from the specified texture coordinate P from which the
texels will be gathered.
Description
textureGatherOffset returns the value:
vec4(Sample_i0_j1(P + offset, base).comp,
Sample_i1_j1(P + offset, base).comp,
Sample_i1_j0(P + offset, base).comp,
Sample_i0_j1(P + offset, base).comp);
It perfoms as textureGather but with offset applied as described in
textureOffset, except that the implementationdependent minimum and maximum
offset values are given by GL_MIN_PROGRRAM_TEXTURE_GATHER_OFFSET and
GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET, respectively.
If specified, the value of comp must ba constant integer expression with a
value of 0, 1, 2, or 3, identifying the x, y, z or w component of the
fourcomponent vector lookup result for each texel, respectively. If comp is
not specified, it is treated as 0, selecting the x component of each texel to
generate the result.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureGatherOffset       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

TEXTUREGATHEROFFSETS
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :SAMPLER2DSHADOW :VEC2 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :SAMPLER2DRECTSHADOW :VEC3
:FLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :SAMPLER2DRECT :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :SAMPLER2DRECT :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :SAMPLER2DARRAYSHADOW :VEC3
:FLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :SAMPLER2DARRAY :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :SAMPLER2DARRAY :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :SAMPLER2D :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :SAMPLER2D :VEC2 :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :USAMPLER2DRECT :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :USAMPLER2DRECT :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :USAMPLER2DARRAY :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :USAMPLER2DARRAY :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :USAMPLER2D :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :USAMPLER2D :VEC2 :IVEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :ISAMPLER2DRECT :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :ISAMPLER2DRECT :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :ISAMPLER2DARRAY :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :ISAMPLER2DARRAY :VEC3 :IVEC2
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :ISAMPLER2D :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGATHEROFFSETS :ISAMPLER2D :VEC2 :IVEC2 :INT32)
Official GLSL Documentaion:
Name
textureGatherOffsets — gathers four texels from a texture with an array of
offsets
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
comp
Specifies the component of the source texture that will be used to generate
the resulting vector.
refZ
Specifies the reference Z value used in the comparison for shadow forms.
offsets
Specifies an array of offsets from the specified texture coordinate P from
which the texels will be gathered.
Description
textureGatherOffsets operates identically to textureGatherOffset, except that
offsets is used to determine the location of the four texels to sample. Each of
the four texels is obtained by applying the offset in offsets as a (u, v)
coordinate offset to P, identifying the fourtexel GL_LINEAR footprint, and
then selecting the texel i0i0 of that footprint. The specified values in
offsets must be set with constant integral expressions.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureGatherOffsets       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

TEXTUREGRAD
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLERCUBEARRAY :VEC4 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLERCUBE :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER3D :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER2DRECT :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER2DARRAY :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER2D :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER1DARRAY :VEC2 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER1D :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :USAMPLERCUBEARRAY :VEC4 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :USAMPLERCUBE :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :USAMPLER3D :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :USAMPLER2DRECT :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :USAMPLER2DARRAY :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :USAMPLER2D :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :USAMPLER1DARRAY :VEC2 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :USAMPLER1D :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :ISAMPLERCUBEARRAY :VEC4 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :ISAMPLERCUBE :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :ISAMPLER3D :VEC3 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :ISAMPLER2DRECT :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :ISAMPLER2DARRAY :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :ISAMPLER2D :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :ISAMPLER1DARRAY :VEC2 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :ISAMPLER1D :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER2DSHADOW :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER2DRECTSHADOW :VEC2 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER1DSHADOW :VEC3 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRAD :SAMPLER1DARRAYSHADOW :VEC3 :FLOAT
:FLOAT)
Official GLSL Documentaion:
Name
textureGrad — perform a texture lookup with explicit gradients
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
dPdx
Specifies the partial derivative of P with respect to window x.
dPdy
Specifies the partial derivative of P with respect to window y.
Description
textureGrad performs a texture lookup at coordinate P from the texture bound to
sampler with explicit texture coordinate gradiends as specified in dPdx and
dPdy. Set:
δs δx = δP δx for a 1D texture, δP.s δx otherwise
δs δy = δP δy for a 1D texture, δP.s δy otherwise
δt δx = 0.0 for a 1D texture, δP.t δx otherwise
δt δy = 0.0 for a 1D texture, δP.t δy otherwise
δr δx = 0.0 for a 1D or 2D texture, δP.p δx otherwise
δr δy = 0.0 for a 1D or 2D texture, δP.p δy otherwise
For the cube version, the partial derivatives of P are assumed to be in the
coordinate system used before texture coordinates are projected onto the
appropriate cube face.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureGrad   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureGrad
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
textureGrad       ✔ ✔ ✔ ✔ ✔ ✔
(gsamplerCubeArray)
Copyright © 20112014 Khronos Group

TEXTUREGRADOFFSET
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER3D :VEC3 :VEC3 :VEC3
:IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER2DRECT :VEC2 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER2DARRAY :VEC3 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER2D :VEC2 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER1DARRAY :VEC2 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER1D :FLOAT :FLOAT :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :USAMPLER3D :VEC3 :VEC3 :VEC3
:IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :USAMPLER2DRECT :VEC2 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :USAMPLER2DARRAY :VEC3 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :USAMPLER2D :VEC2 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :USAMPLER1DARRAY :VEC2 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :USAMPLER1D :FLOAT :FLOAT :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :ISAMPLER3D :VEC3 :VEC3 :VEC3
:IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :ISAMPLER2DRECT :VEC2 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :ISAMPLER2DARRAY :VEC3 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :ISAMPLER2D :VEC2 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :ISAMPLER1DARRAY :VEC2 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :ISAMPLER1D :FLOAT :FLOAT :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER2DSHADOW :VEC3 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER2DRECTSHADOW :VEC3 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER2DARRAYSHADOW :VEC3
:VEC2 :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER1DSHADOW :VEC3 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREGRADOFFSET :SAMPLER1DARRAYSHADOW :VEC3
:FLOAT :FLOAT :INT32)
Official GLSL Documentaion:
Name
textureGradOffset — perform a texture lookup with explicit gradients and offset
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
dPdx
Specifies the partial derivative of P with respect to window x.
dPdy
Specifies the partial derivative of P with respect to window y.
offset
Specifies the offset to be applied to the texture coordinates before
sampling.
Description
textureGradOffset performs a texture lookup at coordinate P from the texture
bound to sampler with explicit texture coordinate gradiends as specified in
dPdx and dPdy. An explicit offset is also supplied in offset. textureGradOffset
consumes dPdx and dPdy as textureGrad and offset as textureOffset.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureGradOffset   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureGradOffset
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
Copyright © 20112014 Khronos Group

TEXTURELOD
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLERCUBEARRAY :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLERCUBE :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLER3D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLER2DARRAY :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLER2D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLER1DARRAY :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLER1D :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :USAMPLERCUBEARRAY :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :USAMPLERCUBE :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :USAMPLER3D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :USAMPLER2DARRAY :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :USAMPLER2D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :USAMPLER1DARRAY :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :USAMPLER1D :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :ISAMPLERCUBEARRAY :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :ISAMPLERCUBE :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :ISAMPLER3D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :ISAMPLER2DARRAY :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :ISAMPLER2D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :ISAMPLER1DARRAY :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :ISAMPLER1D :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLER2DSHADOW :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLER1DSHADOW :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELOD :SAMPLER1DARRAYSHADOW :VEC3 :FLOAT)
Official GLSL Documentaion:
Name
textureLod — perform a texture lookup with explicit levelofdetail
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
lod
Specifies the explicit levelofdetail
Description
textureLod performs a texture lookup at coordinate P from the texture bound to
sampler with an explicit levelofdetail as specified in lod. lod specifies
λbase and sets the partial derivatives as follows:
δ u δ x = 0 , δ v δ x = 0 , δ w δ x = 0 δ u δ y = 0 , δ v δ y = 0 , δ w δ y = 0
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureLod   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureLod
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
textureLod       ✔ ✔ ✔ ✔ ✔ ✔
(gsamplerCubeArray)
Copyright © 20112014 Khronos Group

TEXTURELODOFFSET
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :SAMPLER3D :VEC3 :FLOAT :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :SAMPLER2DARRAY :VEC3 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :SAMPLER2D :VEC2 :FLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :SAMPLER1DARRAY :VEC2 :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :SAMPLER1D :FLOAT :FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :USAMPLER3D :VEC3 :FLOAT :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :USAMPLER2DARRAY :VEC3 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :USAMPLER2D :VEC2 :FLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :USAMPLER1DARRAY :VEC2 :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :USAMPLER1D :FLOAT :FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :ISAMPLER3D :VEC3 :FLOAT :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :ISAMPLER2DARRAY :VEC3 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :ISAMPLER2D :VEC2 :FLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :ISAMPLER1DARRAY :VEC2 :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :ISAMPLER1D :FLOAT :FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :SAMPLER2DSHADOW :VEC4 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :SAMPLER1DSHADOW :VEC3 :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURELODOFFSET :SAMPLER1DARRAYSHADOW :VEC3
:FLOAT :INT32)
Official GLSL Documentaion:
Name
textureLodOffset — perform a texture lookup with explicit levelofdetail and
offset
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which the texture will be sampled.
lod
Specifies the explicit levelofdetail from which texels will be fetched.
offset
Specifies the offset that will be applied to P before texels are fetched.
Description
textureLodOffset performs a texture lookup at coordinate P from the texture
bound to sampler with an explicit levelofdetail as specified in lod. Behavior
is the same as in textureLod except that before sampling, offset is added to P.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureLodOffset   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureLodOffset
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
textureLodOffset       ✔ ✔ ✔ ✔ ✔ ✔
(gsamplerCubeArray)
Copyright © 20112014 Khronos Group

TEXTUREOFFSET
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER3D :VEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER3D :VEC3 :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER2DRECT :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER2DARRAY :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER2DARRAY :VEC3 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER2D :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER2D :VEC2 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER1DARRAY :VEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER1DARRAY :VEC2 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER1D :FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER1D :FLOAT :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER3D :VEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER3D :VEC3 :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER2DRECT :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER2DARRAY :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER2DARRAY :VEC3 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER2D :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER2D :VEC2 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER1DARRAY :VEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER1DARRAY :VEC2 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER1D :FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :USAMPLER1D :FLOAT :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER3D :VEC3 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER3D :VEC3 :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER2DRECT :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER2DARRAY :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER2DARRAY :VEC3 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER2D :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER2D :VEC2 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER1DARRAY :VEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER1DARRAY :VEC2 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER1D :FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :ISAMPLER1D :FLOAT :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER2DSHADOW :VEC4 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER2DSHADOW :VEC4 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER2DRECTSHADOW :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER2DARRAYSHADOW :VEC4 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER1DSHADOW :VEC3 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER1DSHADOW :VEC3 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREOFFSET :SAMPLER1DARRAYSHADOW :VEC3 :INT32)
Official GLSL Documentaion:
Name
textureOffset — perform a texture lookup with offset
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
offset
Specifies offset, in texels that will be applied to P before looking up the
texel.
Description
textureOffset performs a texture lookup at coordinate P from the texture bound
to sampler with an an additional offset, specified in texels in offset that
will be applied to the (u, v, w) texture coordinates before looking up each
texel. The offset value must be a constant expression. A limited range of
offset values are supported; the minimum and maximum offset values are
implementationdependent and may be determined by querying
GL_MIN_PROGRAM_TEXEL_OFFSET and GL_MAX_PROGRAM_TEXEL_OFFSET, respectively.
Note that offset does not apply to the layer coordinate for texture arrays.
Also note that offsets are not supported for cube maps.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureOffset   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureOffset
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
Copyright © 20112014 Khronos Group

TEXTUREPROJ
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER3D :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER3D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER2DRECT :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER2DRECT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER2D :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER2D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER2D :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER2D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER1D :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER1D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER1D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER1D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER3D :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER3D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER2DRECT :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER2DRECT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER2D :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER2D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER2D :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER2D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER1D :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER1D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER1D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :USAMPLER1D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER3D :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER3D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER2DRECT :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER2DRECT :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER2D :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER2D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER2D :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER2D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER1D :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER1D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER1D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :ISAMPLER1D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER2DSHADOW :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER2DSHADOW :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER2DRECTSHADOW :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER1DSHADOW :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJ :SAMPLER1DSHADOW :VEC4 :FLOAT)
Official GLSL Documentaion:
Name
textureProj — perform a texture lookup with projection
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
bias
Specifies an optional bias to be applied during levelofdetail
computation.
Description
textureProj performs a texture lookup with projection. The texture coordinates
consumed from P, not including the last component of P, are divided by the last
component of P. The resulting 3rd component of P in the shadow forms is used as
Dref. After these values are computed, the texture lookup proceeds as in
texture.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureProj   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureProj
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
Copyright © 20112014 Khronos Group

TEXTUREPROJGRAD
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER3D :VEC4 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER2DRECT :VEC4 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER2DRECT :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER2D :VEC4 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER2D :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER1D :VEC4 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER1D :VEC2 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :USAMPLER3D :VEC4 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :USAMPLER2DRECT :VEC4 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :USAMPLER2DRECT :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :USAMPLER2D :VEC4 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :USAMPLER2D :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :USAMPLER1D :VEC4 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :USAMPLER1D :VEC2 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :ISAMPLER3D :VEC4 :VEC3 :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :ISAMPLER2DRECT :VEC4 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :ISAMPLER2DRECT :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :ISAMPLER2D :VEC4 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :ISAMPLER2D :VEC3 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :ISAMPLER1D :VEC4 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :ISAMPLER1D :VEC2 :FLOAT :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER2DSHADOW :VEC4 :VEC2 :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER2DRECTSHADOW :VEC4 :VEC2
:VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRAD :SAMPLER1DSHADOW :VEC4 :FLOAT
:FLOAT)
Official GLSL Documentaion:
Name
textureProjGrad — perform a texture lookup with projection and explicit
gradients
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
dPdx
Specifies the partial derivative of P with respect to window x.
dPdy
Specifies the partial derivative of P with respect to window y.
Description
textureProjGrad performs a texture lookup with projection and explicit
gradients. The texture coordinates consumed from P, not including the last
component of P, are divided by the last component of P. The resulting 3rd
component of P in the shadow forms is used as Dref. After these values are
computed, the texture lookup proceeds as in textureGrad, passing dPdx and dPdy
as gradients.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureProjGrad   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureProjGrad
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
Copyright © 20112014 Khronos Group

TEXTUREPROJGRADOFFSET
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER3D :VEC4 :VEC3 :VEC3
:IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER2DRECT :VEC4 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER2DRECT :VEC3 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER2D :VEC4 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER2D :VEC3 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER1D :VEC4 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER1D :VEC2 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :USAMPLER3D :VEC4 :VEC3 :VEC3
:IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :USAMPLER2DRECT :VEC4 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :USAMPLER2DRECT :VEC3 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :USAMPLER2D :VEC4 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :USAMPLER2D :VEC3 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :USAMPLER1D :VEC4 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :USAMPLER1D :VEC2 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :ISAMPLER3D :VEC4 :VEC3 :VEC3
:IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :ISAMPLER2DRECT :VEC4 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :ISAMPLER2DRECT :VEC3 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :ISAMPLER2D :VEC4 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :ISAMPLER2D :VEC3 :VEC2 :VEC2
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :ISAMPLER1D :VEC4 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :ISAMPLER1D :VEC2 :FLOAT
:FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER2DSHADOW :VEC4 :VEC2
:VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER2DRECTSHADOW :VEC4
:VEC2 :VEC2 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJGRADOFFSET :SAMPLER1DSHADOW :VEC4
:FLOAT :FLOAT :INT32)
Official GLSL Documentaion:
Name
textureProjGradOffset — perform a texture lookup with projection, explicit
gradients and offset
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
dPdx
Specifies the partial derivative of P with respect to window x.
dPdy
Specifies the partial derivative of P with respect to window y.
offset
Specifies the offsets, in texels at which the texture will be sampled
relative to the projection of P.
Description
textureProjGradOffset performs a texture lookup with projection and explicit
gradients and offsets. The texture coordinates consumed from P, not including
the last component of P, are divided by the last component of P. The resulting
3rd component of P in the shadow forms is used as Dref. After these values are
computed, the texture lookup proceeds as in textureGradOffset, passing dPdx and
dPdy as gradients, and offset as the offset.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureProjGradOffset   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureProjGradOffset
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
Copyright © 20112014 Khronos Group

TEXTUREPROJLOD
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :SAMPLER3D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :SAMPLER2D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :SAMPLER2D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :SAMPLER1D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :SAMPLER1D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :USAMPLER3D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :USAMPLER2D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :USAMPLER2D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :USAMPLER1D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :USAMPLER1D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :ISAMPLER3D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :ISAMPLER2D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :ISAMPLER2D :VEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :ISAMPLER1D :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :ISAMPLER1D :VEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :SAMPLER2DSHADOW :VEC4 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLOD :SAMPLER1DSHADOW :VEC4 :FLOAT)
Official GLSL Documentaion:
Name
textureProjLod — perform a texture lookup with projection and explicit
levelofdetail
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
lod
Specifies the explicit levelofdetail from which to fetch texels.
Description
textureProjLod performs a texture lookup with projection from an explicitly
specified levelofdetail. The texture coordinates consumed from P, not
including the last component of P, are divided by the last component of P. The
resulting 3rd component of P in the shadow forms is used as Dref. After these
values are computed, the texture lookup proceeds as in textureLod, with lod
used to specify the levelofdetail from which the texture will be sampled.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureProjLod   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

TEXTUREPROJLODOFFSET
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :SAMPLER3D :VEC4 :FLOAT :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :SAMPLER2D :VEC4 :FLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :SAMPLER2D :VEC3 :FLOAT :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :SAMPLER1D :VEC4 :FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :SAMPLER1D :VEC2 :FLOAT :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :USAMPLER3D :VEC4 :FLOAT
:IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :USAMPLER2D :VEC4 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :USAMPLER2D :VEC3 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :USAMPLER1D :VEC4 :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :USAMPLER1D :VEC2 :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :ISAMPLER3D :VEC4 :FLOAT
:IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :ISAMPLER2D :VEC4 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :ISAMPLER2D :VEC3 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :ISAMPLER1D :VEC4 :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :ISAMPLER1D :VEC2 :FLOAT
:INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :SAMPLER2DSHADOW :VEC4 :FLOAT
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJLODOFFSET :SAMPLER1DSHADOW :VEC4 :FLOAT
:INT32)
Official GLSL Documentaion:
Name
textureProjLodOffset — perform a texture lookup with projection and explicit
levelofdetail and offset
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which texture will be sampled.
lod
Specifies the explicit levelofdetail from which to fetch texels.
offset
Specifies the offset, in texels, to be applied to P before fetching texels.
Description
textureProjLodOffset performs a texture lookup with projection from an
explicitly specified levelofdetail with an offset applied to the texture
coordinates before sampling. The texture coordinates consumed from P, not
including the last component of P, are divided by the last component of P. The
resulting 3rd component of P in the shadow forms is used as Dref. After these
values are computed, the texture lookup proceeds as in textureLodOffset, with
lod used to specify the levelofdetail from which the texture will be sampled
and offset used to specifiy the offset, in texels, to be applied to the texture
coordinates before sampling.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureProjLodOffset   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

TEXTUREPROJOFFSET
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER3D :VEC4 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER3D :VEC4 :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER2DRECT :VEC4 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER2DRECT :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER2D :VEC4 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER2D :VEC4 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER2D :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER2D :VEC3 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER1D :VEC4 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER1D :VEC4 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER1D :VEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER1D :VEC2 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER3D :VEC4 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER3D :VEC4 :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER2DRECT :VEC4 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER2DRECT :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER2D :VEC4 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER2D :VEC4 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER2D :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER2D :VEC3 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER1D :VEC4 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER1D :VEC4 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER1D :VEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :USAMPLER1D :VEC2 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER3D :VEC4 :IVEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER3D :VEC4 :IVEC3 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER2DRECT :VEC4 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER2DRECT :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER2D :VEC4 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER2D :VEC4 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER2D :VEC3 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER2D :VEC3 :IVEC2 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER1D :VEC4 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER1D :VEC4 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER1D :VEC2 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :ISAMPLER1D :VEC2 :INT32 :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER2DSHADOW :VEC4 :IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER2DSHADOW :VEC4 :IVEC2
:FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER2DRECTSHADOW :VEC4
:IVEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER1DSHADOW :VEC4 :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREPROJOFFSET :SAMPLER1DSHADOW :VEC4 :INT32
:FLOAT)
Official GLSL Documentaion:
Name
textureProjOffset — perform a texture lookup with projection and offset
Parameters
sampler
Specifies the sampler to which the texture from which texels will be
retrieved is bound.
P
Specifies the texture coordinates at which the texture will be sampled.
offset
Specifies the offset that is applied to P before sampling occurs.
bias
Specifies an optional bias to be applied during levelofdetail
computation.
Description
textureProjOffset performs a texture lookup with projection. The texture
coordinates consumed from P, not including the last component of P, are divided
by the last component of P. The resulting 3rd component of P in the shadow
forms is used as Dref. After these values are computed, the texture lookup
proceeds as in textureOffset, with the offset used to offset the computed
texture coordinates.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureProjOffset   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureProjOffset
(gsampler2DRect    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
Copyright © 20112014 Khronos Group

TEXTUREQUERYLEVELS
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :USAMPLERCUBEARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :USAMPLERCUBE)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :USAMPLER3D)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :USAMPLER2DARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :USAMPLER2D)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :USAMPLER1DARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :USAMPLER1D)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLERCUBESHADOW)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLERCUBEARRAYSHADOW)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLERCUBEARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLERCUBE)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLER3D)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLER2DSHADOW)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLER2DARRAYSHADOW)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLER2DARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLER2D)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLER1DSHADOW)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLER1DARRAYSHADOW)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLER1DARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :SAMPLER1D)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :ISAMPLERCUBEARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :ISAMPLERCUBE)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :ISAMPLER3D)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :ISAMPLER2DARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :ISAMPLER2D)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :ISAMPLER1DARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLEVELS :ISAMPLER1D)
Official GLSL Documentaion:
Name
textureQueryLevels — compute the number of accessible mipmap levels of a
texture
Parameters
sampler
Specifies the sampler to which the texture whose mipmap level count will be
queried is bound.
Description
textureQueryLevels returns the number of accessible mipmap levels in the
texture associated with sampler.
If called on an incomplete texture, or if no texture is associated with sampler
, zero is returned.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureQueryLevels          ✔ ✔ ✔
Copyright © 20112014 Khronos Group

TEXTUREQUERYLOD
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :USAMPLERCUBEARRAY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :USAMPLERCUBE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :USAMPLER3D :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :USAMPLER2DARRAY :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :USAMPLER2D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :USAMPLER1DARRAY :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :USAMPLER1D :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLERCUBESHADOW :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLERCUBEARRAYSHADOW :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLERCUBEARRAY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLERCUBE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLER3D :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLER2DSHADOW :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLER2DARRAYSHADOW :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLER2DARRAY :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLER2D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLER1DSHADOW :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLER1DARRAYSHADOW :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLER1DARRAY :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :SAMPLER1D :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :ISAMPLERCUBEARRAY :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :ISAMPLERCUBE :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :ISAMPLER3D :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :ISAMPLER2DARRAY :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :ISAMPLER2D :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :ISAMPLER1DARRAY :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TEXTUREQUERYLOD :ISAMPLER1D :FLOAT)
Official GLSL Documentaion:
Name
textureQueryLod — compute the levelofdetail that would be used to sample from
a texture
Parameters
sampler
Specifies the sampler to which the texture whose levelofdetail will be
queried is bound.
P
Specifies the texture coordinates at which the levelofdetail will be
queried.
Description
Available only in the fragment shader, textureQueryLod computes the
levelofdetail that would be used to sample from a texture. The mipmap array
(s) that would be accessed is returned in the x component of the return value.
The computed levelofdetail relative to the base level is returned in the y
component of the return value.
If called on an incomplete texture, the result of the operation is undefined.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureQueryLod       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

TEXTURESAMPLES
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTURESAMPLES :USAMPLER2DMS)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESAMPLES :SAMPLER2DMSARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESAMPLES :SAMPLER2DMS)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESAMPLES :ISAMPLER2DMS)
Official GLSL Documentaion:
Name
textureSamples — return the number of samples of a texture
Parameters
sampler
Specifies the sampler to which the texture is bound.
Description
textureSamples returns the number of samples per texel of the texture bound to
sampler.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureSamples            ✔
Copyright © 20112014 Khronos Group

TEXTURESIZE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :USAMPLER3D :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :USAMPLER2DARRAY :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLERCUBEARRAYSHADOW :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLERCUBEARRAY :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER3D :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER2DMSARRAY)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER2DARRAYSHADOW :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER2DARRAY :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :ISAMPLER3D :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :ISAMPLER2DARRAY :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :USAMPLERRECT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :USAMPLERCUBE :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :USAMPLER2DMS)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :USAMPLER2D :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :USAMPLER1DARRAY :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLERRECT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLERCUBESHADOW :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLERCUBE :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER2DSHADOW :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER2DRECTSHADOW)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER2DMS)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER2D :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER1DARRAYSHADOW :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER1DARRAY :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :ISAMPLERRECT)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :ISAMPLERCUBE :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :ISAMPLER2DMS)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :ISAMPLER2D :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :ISAMPLER1DARRAY :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :USAMPLERBUFFER)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :USAMPLER1D :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLERBUFFER)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER1DSHADOW :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :SAMPLER1D :INT32)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :ISAMPLERBUFFER)
(GLSLSYMBOLS.FUNCTIONS:TEXTURESIZE :ISAMPLER1D :INT32)
Official GLSL Documentaion:
Name
textureSize — retrieve the dimensions of a level of a texture
Parameters
sampler
Specifies the sampler to which the texture whose dimensions to retrieve is
bound.
lod
Specifies the level of the texture for which to retrieve the dimensions.
Description
textureSize returns the dimensions of level lod (if present) of the texture
bound to sampler. The components in the return value are filled in, in order,
with the width, height and depth of the texture. For the array forms, the last
component of the return value is the number of layers in the texture array.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
textureSize   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
textureSize
(samplerBuffer,    ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
samplerRect{Shadow})
textureSize
(samplerCube       ✔ ✔ ✔ ✔ ✔ ✔
{Shadow})
Copyright © 20112014 Khronos Group

TRANSPOSE
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :MAT3X4)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :MAT2X4)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :MAT4)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :MAT4X3)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :MAT2X3)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :MAT3)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :MAT4X2)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :MAT3X2)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :MAT2)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :DMAT3X4)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :DMAT2X4)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :DMAT4)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :DMAT4X3)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :DMAT2X3)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :DMAT3)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :DMAT4X2)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :DMAT3X2)
(GLSLSYMBOLS.FUNCTIONS:TRANSPOSE :DMAT2)
Official GLSL Documentaion:
Name
transpose — calculate the transpose of a matrix
Parameters
m
Specifies the matrix of which to take the transpose.
Description
transpose returns the transpose of the matrix m.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
transpose (float)  ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
transpose (double)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
TRUNC
8 overloads
)
func TRUNC
Overloads:
(GLSLSYMBOLS.FUNCTIONS:TRUNC :VEC4)
(GLSLSYMBOLS.FUNCTIONS:TRUNC :VEC3)
(GLSLSYMBOLS.FUNCTIONS:TRUNC :VEC2)
(GLSLSYMBOLS.FUNCTIONS:TRUNC :FLOAT)
(GLSLSYMBOLS.FUNCTIONS:TRUNC :DVEC4)
(GLSLSYMBOLS.FUNCTIONS:TRUNC :DVEC3)
(GLSLSYMBOLS.FUNCTIONS:TRUNC :DVEC2)
(GLSLSYMBOLS.FUNCTIONS:TRUNC :DOUBLE)
Official GLSL Documentaion:
Name
trunc — find the nearest integer less than or equal to the parameter
Parameters
x
Specify the value to evaluate.
Description
trunc returns a a value equal to the nearest integer to x whose absolute value
is not larger than the absolute value of x.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
trunc (genType)   ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
trunc (genDType)       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

(
UINT
0 overloads
)
func UINT
Overloads:
(GLSLSYMBOLS.TYPES:UINT :UINT32)

UINTBITSTOFLOAT
Overloads:
(GLSLSYMBOLS.FUNCTIONS:UINTBITSTOFLOAT :UVEC4)
(GLSLSYMBOLS.FUNCTIONS:UINTBITSTOFLOAT :UVEC3)
(GLSLSYMBOLS.FUNCTIONS:UINTBITSTOFLOAT :UVEC2)
(GLSLSYMBOLS.FUNCTIONS:UINTBITSTOFLOAT :UINT32)

UNPACKDOUBLE2X32
Overloads:
(GLSLSYMBOLS.FUNCTIONS:UNPACKDOUBLE2X32 :DOUBLE)
Official GLSL Documentaion:
Name
unpackDouble2x32 — produce two unsigned integers containing the bit encoding of
a double precision floating point value
Parameters
d
Specifies double precision value to break into a pair of unsigned integers.
Description
unpackDouble2x32 returns a twocomponent unsigned integer vector representation
of d. The bitlevel representation of d is preserved. The first component of
the returned vector contains the 32 least significant bits of the double; the
second component consists the 32 most significant bits.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
unpackDouble2x32       ✔ ✔ ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

UNPACKHALF2X16
Overloads:
(GLSLSYMBOLS.FUNCTIONS:UNPACKHALF2X16 :UINT32)
Official GLSL Documentaion:
Name
unpackHalf2x16 — convert two 16bit floatingpoint values packed into a single
32bit integer into a vector of two 32bit floatingpoint quantities
Parameters
v
Specify a single 32bit unsigned integer values that contains two 16bit
floating point values to be unpacked.
Description
unpackHalf2x16 returns a twocomponent floatingpoint vector with components
obtained by unpacking a 32bit unsigned integer into a pair of 16bit values,
interpreting those values as 16bit floatingpoint numbers according to the
OpenGL Specification, and converting them to 32bit floatingpoint values. The
first component of the vector is obtained from the 16 leastsignificant bits of
v; the second component is obtained from the 16 mostsignificant bits of v.
Version Support
OpenGL Shading Language Version
Function Name 1.10 1.20 1.30 1.40 1.50 3.30 4.00 4.10 4.20 4.30 4.40 4.50
unpackHalf2x16         ✔ ✔ ✔ ✔
Copyright © 20112014 Khronos Group

UNPACKSNORM2X16
Overloads:
(GLSLSYMBOLS.FUNCTIONS:UNPACKSNORM2X16 :UINT32)

UNPACKSNORM4X8
Overloads:
(GLSLSYMBOLS.FUNCTIONS:UNPACKSNORM4X8 :UINT32)

UNPACKUNORM2X16
Overloads:
(GLSLSYMBOLS.FUNCTIONS:UNPACKUNORM2X16 :UINT32)

UNPACKUNORM4X8
Overloads:
(GLSLSYMBOLS.FUNCTIONS:UNPACKUNORM4X8 :UINT32)

(
UVEC2
0 overloads
)
func UVEC2
Overloads:
(GLSLSYMBOLS.TYPES:UVEC2 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC2 :UINT32 :UINT32)

(
UVEC3
0 overloads
)
func UVEC3
Overloads:
(GLSLSYMBOLS.TYPES:UVEC3 :UINT32 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC3 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC3 :UINT32 :UINT32 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC3 :UVEC2 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC3 :UINT32 :UVEC2)

(
UVEC4
0 overloads
)
func UVEC4
Overloads:
(GLSLSYMBOLS.TYPES:UVEC4 :UINT32 :UINT32 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC4 :UINT32 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC4 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC4 :UINT32 :UINT32 :UINT32 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC4 :UINT32 :UINT32 :UVEC2)
(GLSLSYMBOLS.TYPES:UVEC4 :UINT32 :UVEC2 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC4 :UVEC2 :UINT32 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC4 :UVEC3 :UINT32)
(GLSLSYMBOLS.TYPES:UVEC4 :UINT32 :UVEC3)
(GLSLSYMBOLS.TYPES:UVEC4 :UVEC2 :UVEC2)

VEQUAL
Overloads:
(VARI.GLSL:VEQUAL :DVEC4 :DVEC4)
(VARI.GLSL:VEQUAL :DVEC3 :DVEC3)
(VARI.GLSL:VEQUAL :DVEC2 :DVEC2)
(VARI.GLSL:VEQUAL :DOUBLE :DOUBLE)
(VARI.GLSL:VEQUAL :UVEC4 :UVEC4)
(VARI.GLSL:VEQUAL :UVEC3 :UVEC3)
(VARI.GLSL:VEQUAL :UVEC2 :UVEC2)
(VARI.GLSL:VEQUAL :UINT32 :UINT32)
(VARI.GLSL:VEQUAL :IVEC4 :IVEC4)
(VARI.GLSL:VEQUAL :IVEC3 :IVEC3)
(VARI.GLSL:VEQUAL :IVEC2 :IVEC2)
(VARI.GLSL:VEQUAL :INT32 :INT32)
(VARI.GLSL:VEQUAL :VEC4 :VEC4)
(VARI.GLSL:VEQUAL :VEC3 :VEC3)
(VARI.GLSL:VEQUAL :VEC2 :VEC2)
(VARI.GLSL:VEQUAL :FLOAT :FLOAT)
(VARI.GLSL:VEQUAL VARI.TYPES:VBVECTOR VARI.TYPES:VBVECTOR)

(
VNOT
0 overloads
)
func VNOT
Overloads:
(VARI.GLSL:VNOT VARI.TYPES:VBVECTOR)

VNOTEQUAL
Overloads:
(VARI.GLSL:VNOTEQUAL :VEC4 :VEC4)
(VARI.GLSL:VNOTEQUAL :VEC3 :VEC3)
(VARI.GLSL:VNOTEQUAL :VEC2 :VEC2)
(VARI.GLSL:VNOTEQUAL :FLOAT :FLOAT)
(VARI.GLSL:VNOTEQUAL VARI.TYPES:VBVECTOR VARI.TYPES:VBVECTOR)

(
VEC2
0 overloads
)
func VEC2
Overloads:
(GLSLSYMBOLS.TYPES:VEC2 :FLOAT)
(GLSLSYMBOLS.TYPES:VEC2 :FLOAT :FLOAT)

(
VEC3
0 overloads
)
func VEC3
Overloads:
(GLSLSYMBOLS.TYPES:VEC3 :FLOAT :FLOAT)
(GLSLSYMBOLS.TYPES:VEC3 :FLOAT)
(GLSLSYMBOLS.TYPES:VEC3 :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.TYPES:VEC3 :VEC2 :FLOAT)
(GLSLSYMBOLS.TYPES:VEC3 :FLOAT :VEC2)

(
VEC4
0 overloads
)
func VEC4
Overloads:
(GLSLSYMBOLS.TYPES:VEC4 :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.TYPES:VEC4 :FLOAT :FLOAT)
(GLSLSYMBOLS.TYPES:VEC4 :FLOAT)
(GLSLSYMBOLS.TYPES:VEC4 :FLOAT :FLOAT :FLOAT :FLOAT)
(GLSLSYMBOLS.TYPES:VEC4 :FLOAT :FLOAT :VEC2)
(GLSLSYMBOLS.TYPES:VEC4 :FLOAT :VEC2 :FLOAT)
(GLSLSYMBOLS.TYPES:VEC4 :VEC2 :FLOAT :FLOAT)
(GLSLSYMBOLS.TYPES:VEC4 :VEC3 :FLOAT)
(GLSLSYMBOLS.TYPES:VEC4 :FLOAT :VEC3)
(GLSLSYMBOLS.TYPES:VEC4 :VEC2 :VEC2)

(
WHILE
0 overloads
)
func


*
Overloads:
(* :FLOAT :VEC4)
(* :FLOAT :VEC3)
(* :FLOAT :VEC2)
(* VARI.TYPES:VVECTOR VARI.TYPES:VREAL)
(* VARI.TYPES:VMATRIX VARI.TYPES:VREAL)
(* :MAT4 :VEC4)
(* :MAT3 :VEC3)
(* :MAT2 :VEC2)
(* VARI.TYPES:VMATRIX VARI.TYPES:VMATRIX)
(* :DVEC4 :DVEC4)
(* :DVEC3 :DVEC3)
(* :DVEC2 :DVEC2)
(* :UVEC4 :UVEC4)
(* :UVEC3 :UVEC3)
(* :UVEC2 :UVEC2)
(* :IVEC4 :IVEC4)
(* :IVEC3 :IVEC3)
(* :IVEC2 :IVEC2)
(* :VEC4 :VEC4)
(* :VEC3 :VEC3)
(* :VEC2 :VEC2)
(* VARI.TYPES:VREAL VARI.TYPES:VREAL)
(* VARI.TYPES:VMATRIX)
(* VARI.TYPES:VVECTOR)
(* VARI.TYPES:VREAL)
(*)
Return the product of its arguments. With no args, returns 1.

+
Overloads:
(+ COMPLEX COMPLEX)
(+ :DVEC4 :DVEC4)
(+ :DVEC3 :DVEC3)
(+ :DVEC2 :DVEC2)
(+ :UVEC4 :UVEC4)
(+ :UVEC3 :UVEC3)
(+ :UVEC2 :UVEC2)
(+ :IVEC4 :IVEC4)
(+ :IVEC3 :IVEC3)
(+ :IVEC2 :IVEC2)
(+ :VEC4 :VEC4)
(+ :VEC3 :VEC3)
(+ :VEC2 :VEC2)
(+ VARI.TYPES:VVECTOR)
(+ VARI.TYPES:VREAL)
(+)
Return the sum of its arguments. With no args, returns 0.

++
Overloads:
(++ VARI.TYPES:VREAL)


Overloads:
( COMPLEX COMPLEX)
( COMPLEX)
( :DVEC4 :DVEC4)
( :DVEC3 :DVEC3)
( :DVEC2 :DVEC2)
( :UVEC4 :UVEC4)
( :UVEC3 :UVEC3)
( :UVEC2 :UVEC2)
( :IVEC4 :IVEC4)
( :IVEC3 :IVEC3)
( :IVEC2 :IVEC2)
( :VEC4 :VEC4)
( :VEC3 :VEC3)
( :VEC2 :VEC2)
( VARI.TYPES:VREAL VARI.TYPES:VREAL)
( :VEC4)
( :VEC3)
( :VEC2)
( VARI.TYPES:VREAL)
Subtract the second and all subsequent arguments from the first;
or with one argument, negate the first argument.

/
Overloads:
(/ :DVEC4 :DVEC4)
(/ :DVEC3 :DVEC3)
(/ :DVEC2 :DVEC2)
(/ :UVEC4 :UVEC4)
(/ :UVEC3 :UVEC3)
(/ :UVEC2 :UVEC2)
(/ :IVEC4 :IVEC4)
(/ :IVEC3 :IVEC3)
(/ :IVEC2 :IVEC2)
(/ :VEC4 :VEC4)
(/ :VEC3 :VEC3)
(/ :VEC2 :VEC2)
(/ VARI.TYPES:VVECTOR VARI.TYPES:VREAL)
(/ VARI.TYPES:VREAL VARI.TYPES:VREAL)
(/ VARI.TYPES:VVECTOR)
(/ VARI.TYPES:VREAL)
Divide the first argument by each of the following arguments, in turn.
With one argument, return reciprocal.

/=
Overloads:
(/= COMPLEX COMPLEX)
(/= VARI.TYPES:VARRAY VARI.TYPES:VARRAY)
(/= :MAT4 :MAT4)
(/= :MAT3 :MAT3)
(/= :MAT2 :MAT2)
(/= :DVEC4 :DVEC4)
(/= :DVEC3 :DVEC3)
(/= :DVEC2 :DVEC2)
(/= :UVEC4 :UVEC4)
(/= :UVEC3 :UVEC3)
(/= :UVEC2 :UVEC2)
(/= :IVEC4 :IVEC4)
(/= :IVEC3 :IVEC3)
(/= :IVEC2 :IVEC2)
(/= :VEC4 :VEC4)
(/= :VEC3 :VEC3)
(/= :VEC2 :VEC2)
(/= :SHORTFLOAT :SHORTFLOAT)
(/= :DOUBLE :DOUBLE)
(/= :FLOAT :FLOAT)
(/= :UINT32 :UINT32)
(/= :INT32 :INT32)
Return T if no two of its arguments are numerically equal, NIL otherwise.

1+
Overloads:
(1+ VARI.TYPES:VMATRIX)
(1+ VARI.TYPES:VVECTOR)
(1+ VARI.TYPES:VREAL)
Return NUMBER + 1.

1
Overloads:
(1 VARI.TYPES:VMATRIX)
(1 VARI.TYPES:VVECTOR)
(1 VARI.TYPES:VREAL)
Return NUMBER  1.

<
Return T if its arguments are in strictly increasing order, NIL otherwise.

<=
Return T if arguments are in strictly nondecreasing order, NIL otherwise.

=
Overloads:
(= COMPLEX COMPLEX)
(= VARI.TYPES:VTYPE)
(= VARI.TYPES:VARRAY VARI.TYPES:VARRAY)
(= :MAT4 :MAT4)
(= :MAT3 :MAT3)
(= :MAT2 :MAT2)
(= :DVEC4 :DVEC4)
(= :DVEC3 :DVEC3)
(= :DVEC2 :DVEC2)
(= :UVEC4 :UVEC4)
(= :UVEC3 :UVEC3)
(= :UVEC2 :UVEC2)
(= :IVEC4 :IVEC4)
(= :IVEC3 :IVEC3)
(= :IVEC2 :IVEC2)
(= :VEC4 :VEC4)
(= :VEC3 :VEC3)
(= :VEC2 :VEC2)
(= VARI.TYPES:VREAL VARI.TYPES:VREAL)
Return T if all of its arguments are numerically equal, NIL otherwise.

>
Return T if its arguments are in strictly decreasing order, NIL otherwise.

>=
Return T if arguments are in strictly nonincreasing order, NIL otherwise.

ADJUSTABLEARRAYP
Overloads:
(ADJUSTABLEARRAYP VARI.TYPES:VARRAY)
Returns T is the array is adjustable, always returns NIL in Vari

AND
The macro and evaluates each form one at a time from left to right.
As soon as any form evaluates to nil, and returns nil without evaluating the
remaining forms. If all forms but the last evaluate to true values, and returns
the results produced by evaluating the last form.

AREF
Overloads:
(AREF (VARI.TYPES:VBLOCKARRAY "n/a" VARI.TYPES:VTYPE (*)) :INT32)
(AREF :MAT4X4 :INT32)
(AREF :MAT4X3 :INT32)
(AREF :MAT4X2 :INT32)
(AREF :MAT3X4 :INT32)
(AREF :MAT3X3 :INT32)
(AREF :MAT3X2 :INT32)
(AREF :MAT2X4 :INT32)
(AREF :MAT2X3 :INT32)
(AREF :MAT2X2 :INT32)
(AREF :DMAT4 :INT32)
(AREF :DMAT3 :INT32)
(AREF :DMAT2 :INT32)
(AREF :MAT4 :INT32)
(AREF :MAT3 :INT32)
(AREF :MAT2 :INT32)
(AREF :MAT4X4 :INT32 :INT32)
(AREF :MAT4X3 :INT32 :INT32)
(AREF :MAT4X2 :INT32 :INT32)
(AREF :MAT3X4 :INT32 :INT32)
(AREF :MAT3X3 :INT32 :INT32)
(AREF :MAT3X2 :INT32 :INT32)
(AREF :MAT2X4 :INT32 :INT32)
(AREF :MAT2X3 :INT32 :INT32)
(AREF :MAT2X2 :INT32 :INT32)
(AREF :DMAT4 :INT32 :INT32)
(AREF :DMAT3 :INT32 :INT32)
(AREF :DMAT2 :INT32 :INT32)
(AREF :MAT4 :INT32 :INT32)
(AREF :MAT3 :INT32 :INT32)
(AREF :MAT2 :INT32 :INT32)
(AREF VARI.TYPES:VVECTOR :INT32)
(AREF VARI.TYPES:VARRAY :INT32)
Return the element of the ARRAY specified by the SUBSCRIPT.

ARRAYHASFILLPOINTERP
Overloads:
(ARRAYHASFILLPOINTERP VARI.TYPES:VARRAY)
Return T if the given ARRAY has a fill pointer, or NIL otherwise. Always returns NIL in Vari

ARRAYRANK
Overloads:
(ARRAYRANK VARI.TYPES:VARRAY)
Return the number of dimensions of ARRAY. Always returns 1 for Vari arrays as GLSL doesnt support
multidimensional arrays.

ARRAYROWMAJORINDEX
Overloads:
(ARRAYROWMAJORINDEX VARI.TYPES:VARRAY :INT32)
Computes the position according to the rowmajor ordering of array for the
element that is specified by subscripts, and returns the offset of the element
in the computed position from the beginning of array.
For a onedimensional array, the result of arrayrowmajorindex equals
subscript.

ARRAYTOTALSIZE
Overloads:
(ARRAYTOTALSIZE VARI.TYPES:VARRAY)
Return the total number of elements in the Array.

ARRAYP
Overloads:
(ARRAYP VARI.TYPES:VTYPE)
Return true if OBJECT is an ARRAY, and NIL otherwise.



BITVECTORP
Overloads:
(BITVECTORP VARI.TYPES:VARRAY)


BREAK
Overloads:
(BREAK)
break terminates the execution of the nearest enclosing for, switch, or while

CASE
CASE Keyform {(Key Form*)}*
Evaluates the Forms in the first clause with a Key EQL to the value of
Keyform. If a singleton key is T then the clause is a default clause.
Currently all Keys must be constantp

CIS
Overloads:
(CIS :FLOAT)

COERCE
Coerce the Object to an object of type OutputTypeSpec.
OutputTypeSpec should not be quoted

COMPILEDFUNCTIONP
Overloads:
(COMPILEDFUNCTIONP (FUNCTION NIL NIL))
Return true if OBJECT is a COMPILEDFUNCTION, and NIL otherwise.
All functions in Vari are compiled so this will return T for all functions

COMPLEMENT
Overloads:
(COMPLEMENT (FUNCTION NIL NIL))
Return a new function that returns T whenever FUNCTION returns NIL and
NIL whenever FUNCTION returns nonNIL.

COMPLEX
Overloads:
(COMPLEX :FLOAT)
(COMPLEX :FLOAT :FLOAT)
Return a complex number with the specified real and imaginary components.

COMPLEXP
Overloads:
(COMPLEXP VARI.TYPES:VTYPE)
Return true if OBJECT is a COMPLEX, and NIL otherwise.

COND
Syntax:
cond {clause}+ => result*
clause::= (testform form+)
Arguments and Values:
testforma form.
formsan implicit progn.
resultsthe values of the forms in the first clause whose testform yields
true, or the primary value of the testform if there are no forms in
that clause, or else void if no testform yields true.
Description:
cond allows the execution of forms to be dependent on testform.
Testforms are evaluated one at a time in the order in which they are given in
the argument list until a testform is found that evaluates to true.
If there are no forms in that clause, the primary value of the testform is
returned by the cond form. Otherwise, the forms associated with this testform
are evaluated in order, left to right, as an implicit progn, and the values
returned by the last form are returned by the cond form.
Once one testform has yielded true, no additional testforms are evaluated.
If no testform yields true, the COND evaluates to void.

CONJUGATE
Overloads:
(CONJUGATE COMPLEX)
(CONJUGATE VARI.TYPES:VREAL)
Return the complex conjugate of NUMBER. For noncomplex numbers, this is
an identity.

CONTINUE
Overloads:
(CONTINUE)
The continue statement passes control to the next iteration of the for or
while statement in which it appears, bypassing any remaining statements.

COPYSTRUCTURE
Overloads:
(COPYSTRUCTURE VARJO.TESTS::SOMEDATA)
(COPYSTRUCTURE VARJO.TESTS::BAH)
(COPYSTRUCTURE VARJO.TESTS::POSSAM)
(COPYSTRUCTURE VARJO.TESTS::POSCOL)
(COPYSTRUCTURE VARJO.TESTS::POSROT)
(COPYSTRUCTURE VARI.GLSL::VDEPTHRANGEPARAMETERS)

DECF
The first argument is some location holding a number. This number is
decremented by the second argument, DELTA, which defaults to 1.

DENOMINATOR
Overloads:
(DENOMINATOR RATIO)
Return the denominator of NUMBER, which must be rational.

DO
DO ({(Var Init Step)}+) (Test ExitForm+) Declaration* Form*
Iteration construct. On subsequent iterations, the Vars are assigned the
value of the Step form in parallel. The Test is evaluated before
each evaluation of the body Forms. When the Test is true, the ExitForms
are evaluated as a PROGN, with the result being the value of the DO.

DOTIMES
Syntax:
dotimes (var countform) declaration* {statement}+
=> void
Arguments and Values:
vara symbol.
countforma form.
declarationa declare expression; not evaluated.
statementa compound form;
Description:
dotimes iterates over a series of integers.

EQL
Overloads:
(EQL COMPLEX COMPLEX)
(EQL :SHORTFLOAT :SHORTFLOAT)
(EQL :DOUBLE :DOUBLE)
(EQL :FLOAT :FLOAT)
(EQL :UINT32 :UINT32)
(EQL :INT32 :INT32)
Returns T is both arguments are numbers with the same value
GLSL does not provide a equivalent of EQ.

EVENP
Overloads:
(EVENP :UINT32)
(EVENP :INT32)
Is this integer even?

EXPT
Overloads:
(EXPT :FLOAT :FLOAT)
(EXPT :VEC2 :VEC2)
(EXPT :VEC3 :VEC3)
(EXPT :VEC4 :VEC4)
Return BASE raised to the POWER.

FLET
FLET ({(name lambdalist declaration* form*)}*) declaration* bodyform*
Evaluate the BODYFORMS with local function definitions. The bindings do
not enclose the definitions; any use of NAME in the FORMS will refer to the
lexically apparent function definition in the enclosing environment.

FLOATDIGITS
Overloads:
(FLOATDIGITS :FLOAT)
Returns the number of radix b digits used in the representation of float (including
any implicit digits, such as a ``hidden bit'').

FLOATRADIX
Overloads:
(FLOATRADIX :FLOAT)
Return (as an integer) the radix b of its floatingpoint argument.

FLOATSIGN
Overloads:
(FLOATSIGN :FLOAT)
Return a floatingpoint number that has the same sign as
FLOAT1 and, if FLOAT2 is given, has the same absolute value
as FLOAT2.

FLOATP
Overloads:
(FLOATP VARI.TYPES:VTYPE)
Return true if OBJECT is a FLOAT, and NIL otherwise.

FUNCTION
FUNCTION name
Return the lexically apparent definition of the function NAME. If NAME is
a symbol the result will include all possible overloads of the function. To
specify a single function use the full signatures e.g. #'(sin :float)
NAME may also be a lambda expression.

FUNCTIONP
Overloads:
(FUNCTIONP VARI.TYPES:VTYPE)
Return true if OBJECT is a FUNCTION, and NIL otherwise.

IDENTITY
Overloads:
(IDENTITY VARI.TYPES:VTYPE)
This function simply returns what was passed to it.

IF
IF predicate then [else]
If PREDICATE evaluates to true, evaluate THEN and return its values,
otherwise evaluate ELSE and return its values. ELSE defaults to NIL.
If the branches evaluate to values of different type then the type
of the result will be (or typefromthenbranch typefromelsebranch)
This will cause issues if you attempt to return this value from a function
or pass it as an argument but is harmless in the nontail position of a progn.
If `discard` is called in one branch then the result type of the IF is the
type of the branch that didnt discard

IMAGPART
Overloads:
(IMAGPART COMPLEX)
Extract the imaginary part of a number.

INCF
The first argument is some location holding a number. This number is
incremented by the second argument, DELTA, which defaults to 1.

INTEGERLENGTH
Overloads:
(INTEGERLENGTH :UINT32)
(INTEGERLENGTH :INT32)
Return the number of nonsign bits in the twoscomplement representation
of INTEGER.

INTEGERP
Overloads:
(INTEGERP VARI.TYPES:VTYPE)
Return true if OBJECT is an INTEGER, and NIL otherwise.

ISQRT
Overloads:
(ISQRT :UINT32)
Return the greatest integer less than or equal to the square root of N.

KEYWORDP
Overloads:
(KEYWORDP VARI.TYPES:VTYPE)
Return true if Object is a symbol in the "KEYWORD" package. Always NIL
in Vari

LABELS
LABELS ({(name lambdalist declaration* form*)}*) declaration* bodyform*
Evaluate the BODYFORMS with local function definitions. The bindings enclose
each subsequent definitions, so the defined functions can call the functions
defined before them in the definitions list.
Recursion (direct or indirect) is illegal in GLSL

LAMBDA
lambda lambdalist [[declaration*  documentation]] form+ => function
Arguments and Values:
lambdalistan ordinary lambda list.
declarationa declare expression; not evaluated.
documentationa string; not evaluated.
forma form.
functiona function.
Description:
Provides a shorthand notation for a function special form involving a lambda expression such that:
(lambda lambdalist [[declaration*  documentation]] form*)
== (function (lambda lambdalist [[declaration*  documentation]] form*))
== #'(lambda lambdalist [[declaration*  documentation]] form*)

LET
LET ({(var [value])  var}*) declaration* form*
During evaluation of the FORMS, bind the VARS to the result of evaluating the
VALUE forms. The variables are bound in parallel after all of the VALUES forms
have been evaluated.

LET*
LET* ({(var [value])  var}*) declaration* form*
Similar to LET, but the variables are bound sequentially, allowing each VALUE
form to reference any of the previous VARS.

LOCALLY
LOCALLY declaration* form*
Sequentially evaluate the FORMS in a lexical environment where the
DECLARATIONS have effect. If LOCALLY is a top level form, then the FORMS are
also processed as top level forms.

LOGAND
Overloads:
(LOGAND :INT32 :INT32)
(LOGAND :UVEC4 :UVEC4)
(LOGAND :UVEC4 :UINT32)
(LOGAND :UVEC3 :UVEC3)
(LOGAND :UVEC3 :UINT32)
(LOGAND :UVEC2 :UVEC2)
(LOGAND :UVEC2 :UINT32)
(LOGAND :UINT32 :UVEC4)
(LOGAND :UINT32 :UVEC3)
(LOGAND :UINT32 :UVEC2)
(LOGAND :UINT32 :UINT32)
(LOGAND :IVEC4 :IVEC4)
(LOGAND :IVEC4 :INT32)
(LOGAND :IVEC3 :IVEC3)
(LOGAND :IVEC3 :INT32)
(LOGAND :IVEC2 :IVEC2)
(LOGAND :IVEC2 :INT32)
(LOGAND :INT32 :IVEC4)
(LOGAND :INT32 :IVEC3)
(LOGAND :INT32 :IVEC2)
(LOGAND VARI.TYPES:VINTEGER)
Return the bitwise and of its arguments.

LOGANDC1
Overloads:
(LOGANDC1 :UINT32 :UINT32)
(LOGANDC1 :INT32 :INT32)

LOGANDC2
Overloads:
(LOGANDC2 :UINT32 :UINT32)
(LOGANDC2 :INT32 :INT32)

LOGCOUNT
Overloads:
(LOGCOUNT VARI.TYPES:VINTEGER)
Count the number of 1 bits if INTEGER is nonnegative,
and the number of 0 bits if INTEGER is negative.

LOGIOR
Overloads:
(LOGIOR :INT32 :INT32)
(LOGIOR :UINT32 :UINT32)
(LOGIOR :UVEC4 :UVEC4)
(LOGIOR :UVEC4 :UINT32)
(LOGIOR :UVEC3 :UVEC3)
(LOGIOR :UVEC3 :UINT32)
(LOGIOR :UVEC2 :UVEC2)
(LOGIOR :UVEC2 :UINT32)
(LOGIOR :UINT32 :UVEC4)
(LOGIOR :UINT32 :UVEC3)
(LOGIOR :UINT32 :UVEC2)
(LOGIOR :IVEC4 :IVEC4)
(LOGIOR :IVEC4 :INT32)
(LOGIOR :IVEC3 :IVEC3)
(LOGIOR :IVEC3 :INT32)
(LOGIOR :IVEC2 :IVEC2)
(LOGIOR :IVEC2 :INT32)
(LOGIOR :INT32 :IVEC4)
(LOGIOR :INT32 :IVEC3)
(LOGIOR :INT32 :IVEC2)
(LOGIOR VARI.TYPES:VINTEGER)
Return the bitwise or of its arguments

LOGNAND
Overloads:
(LOGNAND :UINT32 :UINT32)
(LOGNAND :INT32 :INT32)

LOGNOR
Overloads:
(LOGNOR :UINT32 :UINT32)
(LOGNOR :INT32 :INT32)

LOGNOT
Overloads:
(LOGNOT VARI.TYPES:VINTEGER)
Return the bitwise logical not of the input

LOGORC1
Overloads:
(LOGORC1 :UINT32 :UINT32)
(LOGORC1 :INT32 :INT32)

LOGORC2
Overloads:
(LOGORC2 :UINT32 :UINT32)
(LOGORC2 :INT32 :INT32)

LOGTEST
Overloads:
(LOGTEST :UINT32 :UINT32)
(LOGTEST :INT32 :INT32)

LOGXOR
Overloads:
(LOGXOR :UVEC4 :UVEC4)
(LOGXOR :UVEC4 :UINT32)
(LOGXOR :UVEC3 :UVEC3)
(LOGXOR :UVEC3 :UINT32)
(LOGXOR :UVEC2 :UVEC2)
(LOGXOR :UVEC2 :UINT32)
(LOGXOR :UINT32 :UVEC4)
(LOGXOR :UINT32 :UVEC3)
(LOGXOR :UINT32 :UVEC2)
(LOGXOR :UINT32 :UINT32)
(LOGXOR :IVEC4 :IVEC4)
(LOGXOR :IVEC4 :INT32)
(LOGXOR :IVEC3 :IVEC3)
(LOGXOR :IVEC3 :INT32)
(LOGXOR :IVEC2 :IVEC2)
(LOGXOR :IVEC2 :INT32)
(LOGXOR :INT32 :IVEC4)
(LOGXOR :INT32 :IVEC3)
(LOGXOR :INT32 :IVEC2)
(LOGXOR :INT32 :INT32)
(LOGXOR VARI.TYPES:VINTEGER)
Return the bitwise exclusive or of its arguments.

MACROLET
MACROLET ({(name lambdalist form*)}*) bodyform*
Evaluate the BODYFORMS in an environment with the specified local macros
defined. NAME is the local macro name, LAMBDALIST is a DEFMACRO style
destructuring lambda list, and the FORMS evaluate to the expansion.

MAKEARRAY
WARNING: API of MAKEARRAY subject to change.
Description:
Creates and returns an array.
Dimensions represents the dimensionality of the new array. The array must
be singledimensional and dimensions must be a number.
elementtype indicates the type of the elements intended to be stored in the
newarray
If initialelement is supplied, it is used to initialize each element of
newarray. If initialelement is supplied, it must be of the type given by
elementtype. initialelement must be constantp
initialcontents is used to initialize the contents of array. It must currently
be a quoted list, this is an issue and will be changed.

MINUSP
Overloads:
(MINUSP VARI.TYPES:VREAL)
Is this real number strictly negative?

MULTIPLEVALUEBIND
Creates new variable bindings for the vars and executes a series of forms that use
these bindings.
The variable bindings created are lexical.
Valuesform is evaluated, and each of the vars is bound to the respective value
returned by that form. The number of values returns by valuesform must match
the number of forms in 'vars'. The vars are bound to the values over the
execution of the forms, which make up an implicit progn.
The scopes of the name binding and declarations do not include the valuesform.

MULTIPLEVALUECALL
MULTIPLEVALUECALL function valuesform*
Call FUNCTION, passing all the values of each VALUESFORM as arguments,
values from the first VALUESFORM making up the first argument, etc.

MULTIPLEVALUEPROG1
MULTIPLEVALUEPROG1 valuesform form*
Evaluate VALUESFORM and then the FORMS, but return all the values of
VALUESFORM.

MULTIPLEVALUESETQ
multiplevaluesetq assigns values to vars.
The form is evaluated, and each var is assigned to the corresponding value
returned by that form. The number of values returns by valuesform must match
the number of forms in 'vars'
If any var is the name of a symbol macro, then it is assigned as if by setf.

NTHVALUE
Evaluate FORM and return the Nth value (zero based)
without consing a temporary list of values.

NUMBERP
Overloads:
(NUMBERP VARI.TYPES:VTYPE)
Return true if OBJECT is a NUMBER, and NIL otherwise.

NUMERATOR
Overloads:
(NUMERATOR RATIO)
Return the numerator of NUMBER, which must be rational.

ODDP
Overloads:
(ODDP :UINT32)
(ODDP :INT32)
Is this integer odd?

OR
or evaluates each form, one at a time, from left to right. The evaluation of
all forms terminates when a form evaluates to true (i.e., something other than
nil).

PHASE
Overloads:
(PHASE COMPLEX)
(PHASE :FLOAT)

PLUSP
Overloads:
(PLUSP VARI.TYPES:VREAL)
Is this real number strictly positive?

PROG1
prog1 evaluates firstform and then forms, yielding as its only value the primary
value yielded by firstform.

PROG2
prog2 evaluates firstform, then secondform, and then forms, yielding as
its only value the primary value yielded by secondform.

PROGN
PROGN form*
Evaluates each FORM in order, returning the values of the last form.
It is not legal to have an empty PROGN in Vari

RANDOMSTATEP
Overloads:
(RANDOMSTATEP VARI.TYPES:VTYPE)
Returns true if object is of type randomstate; otherwise, returns false.

RATIONALP
Overloads:
(RATIONALP VARI.TYPES:VTYPE)
Return true if OBJECT is a RATIONAL, and NIL otherwise.

REALP
Overloads:
(REALP VARI.TYPES:VTYPE)
Return true if OBJECT is a REAL, and NIL otherwise.

REALPART
Overloads:
(REALPART COMPLEX)
Extract the real part of a number.

RETURN
return terminates the execution of a function and returns control and values to the calling
function. The types from all return forms in a stage must be idential.

ROWMAJORAREF
Overloads:
(ROWMAJORAREF VARI.TYPES:VARRAY :INT32)
Return the element of array corresponding to the rowmajor index. This is
SETFable.

SCALEFLOAT
Overloads:
(SCALEFLOAT :FLOAT :INT32)

SETF
Takes pairs of arguments like SETQ. The first is a place and the second
is the value that is supposed to go into that place. Returns the last
value. The place argument may be any of the access forms for which SETF
knows a corresponding setting form.

SETQ
Assigns a value to a variable.
(setq var1 form1)
is the simple variable assignment statement of Lisp.
First form is evaluated and then the result is stored in the variable var1.
If any var refers to a binding made by symbolmacrolet, then that var is
reated as if setf (not setq) had been used.

SIGNUM
Overloads:
(SIGNUM VARI.TYPES:VREAL)
If NUMBER is zero, return NUMBER, else return (/ NUMBER (ABS NUMBER)).

SIMPLEBITVECTORP
Overloads:
(SIMPLEBITVECTORP VARI.TYPES:VTYPE)
Return true if OBJECT is a SIMPLEBITVECTOR, and NIL otherwise.
Always NIL in Vari

SIMPLEVECTORP
Overloads:
(SIMPLEVECTORP VARI.TYPES:VTYPE)
Return true if OBJECT is a SIMPLEVECTOR, and NIL otherwise.
All arrays are simplevectors in Vari

SLOTVALUE
The function slotvalue returns the value of the slot named slotname in the struct.
`setf` can be used with slotvalue to change the value of a slot.

SVREF
Overloads:
(SVREF VARI.TYPES:VARRAY :INT32)
Return the INDEXth element of the given SimpleVector.

SYMBOLMACROLET
SYMBOLMACROLET ({(name expansion)}*) decl* form*
Define the NAMES as symbol macros with the given EXPANSIONS. Within the
body, references to a NAME will effectively be replaced with the EXPANSION.

SYMBOLP
Overloads:
(SYMBOLP VARI.TYPES:VTYPE)
Return true if OBJECT is a SYMBOL, and NIL otherwise.
Always NIL in Vari

THE
Specifies that the values returned by FORM conform to the VALUETYPE.
This becomes a compiletime assertion of the type, except in cases of global
variable capture where it can be used to inform the compiler of the type.

TYPECASE
TYPECASE Keyform {(Type Form*)}*
Evaluates the Forms in the first clause for which TYPEP of Keyform and Type
is true.

UNLESS
If the first argument is not true, the rest of the forms are
evaluated as a PROGN.

VALUES
Return all arguments, in order, as values.
You may also qualify the values. If the value is a list where the first symbol
is a qualifierform then the last form is the value and the butlast forms are
treated as qualifiers.
For example:
(values (v! 1 2 3 4) ←[0]
(:flat 10) ←[1]
((:feedback 1) (+ position (v! pos 0 0))) ←[2]
((:feedback 0) (v! 0.1 0 1))) ←[2]
 [0] unqualified value
 [1] the value 10 is qualified as flat
 [2] two forms are qualfied as being the transform feedback of the stage

VECTOR
Construct a SIMPLEVECTOR from the given objects.

VECTORP
Overloads:
(VECTORP VARI.TYPES:VTYPE)
Return true if OBJECT is a VECTOR, and NIL otherwise.

WHEN
If the first argument is true, the rest of the forms are
evaluated as a PROGN.

WITHACCESSORS
Creates a lexical environment in which the slots specified by slotentry are
lexically available through their accessors as if they were variables.
The macro withaccessors invokes the appropriate accessors to access the slots
specified by slotentry. Both setf and setq can be used to set the value of the slot.

WITHSLOTS
The macro withslots establishes a lexical environment for referring to the slots in
the struct named by the given slotnames as though they were variables.
Within such a context the value of the slot can be specified by using its
slot name, as if it were a lexically bound variable.
Both setf and setq can be used to set the value of the slot.
The macro withslots translates an appearance of the slot name as a variable
into a call to slotvalue.

ZEROP
Overloads:
(ZEROP VARI.TYPES:VNUMBER)
Is this number zero?