public class ARBComputeVariableGroupSize
extends java.lang.Object
This extension allows applications to write generic compute shaders that operate on work groups with arbitrary dimensions. Instead of specifying a fixed
work group size in the compute shader, an application can use a compute shader using the local_size_variable layout qualifer to indicate a
variable work group size. When using such compute shaders, the new command DispatchComputeGroupSizeARB should be used to specify both a work group size
and work group count.
In this extension, compute shaders with fixed group sizes must be dispatched by DispatchCompute and DispatchComputeIndirect. Compute
shaders with variable group sizes must be dispatched via DispatchComputeGroupSizeARB. No support is provided in this extension for indirect dispatch
of compute shaders with a variable group size.
Requires OpenGL 4.3 or ARB_compute_shader.
| Modifier and Type | Field and Description |
|---|---|
static int |
GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
Accepted by the
pname parameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v. |
static int |
GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
Accepted by the
pname parameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v. |
static int |
GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB
Accepted by the
pname parameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v. |
static int |
GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB
Accepted by the
pname parameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v. |
| Modifier and Type | Method and Description |
|---|---|
static void |
glDispatchComputeGroupSizeARB(int num_groups_x,
int num_groups_y,
int num_groups_z,
int group_size_x,
int group_size_y,
int group_size_z)
Launches one or more compute work groups, with arbitrary dimensions.
|
public static final int GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB
pname parameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v.public static final int GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
pname parameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v.public static final int GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB
pname parameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v.public static final int GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
pname parameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v.public static void glDispatchComputeGroupSizeARB(int num_groups_x,
int num_groups_y,
int num_groups_z,
int group_size_x,
int group_size_y,
int group_size_z)
An INVALID_OPERATION error is generated by DispatchComputeGroupSizeARB if the active program for the compute shader stage has a fixed work group
size.
An INVALID_VALUE error is generated by DispatchComputeGroupSizeARB if any of group_size_x, group_size_y, or group_size_z is
less than or equal to zero or greater than the maximum local work group size for compute shaders with variable group size
(MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB) in the corresponding dimension.
An INVALID_VALUE error is generated by DispatchComputeGroupSizeARB if the product of group_size_x, group_size_y, and
group_size_z exceeds the implementation-dependent maximum local work group invocation count for compute shaders with variable group size
(MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB).
num_groups_x - the number of work groups to be launched in the X dimensionnum_groups_y - the number of work groups to be launched in the Y dimensionnum_groups_z - the number of work groups to be launched in the Z dimensiongroup_size_x - the group size in the X dimensiongroup_size_y - the group size in the Y dimensiongroup_size_z - the group size in the Z dimensionCopyright LWJGL. All Rights Reserved. License terms.