Class ARBComputeVariableGroupSize
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v.static final intAccepted by thepnameparameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v.static final intAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v.static final intAccepted by thepnameparameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidglDispatchComputeGroupSizeARB(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.
-
Field Details
-
GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB
public static final int GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARBAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v.- See Also:
-
GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
public static final int GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARBAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v.- See Also:
-
GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB
public static final int GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARBAccepted by thepnameparameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v.- See Also:
-
GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
public static final int GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARBAccepted by thepnameparameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v.- See Also:
-
-
Method Details
-
glDispatchComputeGroupSizeARB
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) Launches one or more compute work groups, with arbitrary dimensions.An
INVALID_OPERATIONerror is generated by DispatchComputeGroupSizeARB if the active program for the compute shader stage has a fixed work group size.An
INVALID_VALUEerror is generated by DispatchComputeGroupSizeARB if any ofgroup_size_x,group_size_y, orgroup_size_zis 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_VALUEerror is generated by DispatchComputeGroupSizeARB if the product ofgroup_size_x,group_size_y, andgroup_size_zexceeds the implementation-dependent maximum local work group invocation count for compute shaders with variable group size (MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB).- Parameters:
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 dimension
-