Class ARBComputeVariableGroupSize
- java.lang.Object
-
- org.lwjgl.opengl.ARBComputeVariableGroupSize
-
public class ARBComputeVariableGroupSize extends java.lang.Object
Native bindings to the ARB_compute_variable_group_size extension.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
andDispatchComputeIndirect
. Compute shaders with variable group sizes must be dispatched viaDispatchComputeGroupSizeARB
. No support is provided in this extension for indirect dispatch of compute shaders with a variable group size.Requires
OpenGL 4.3
orARB_compute_shader
.
-
-
Field Summary
Fields Modifier and Type Field and Description static int
GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
Accepted by thepname
parameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v.static int
GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
Accepted by thepname
parameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v.static int
GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB
Accepted by thepname
parameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v.static int
GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB
Accepted by thepname
parameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v.
-
Method Summary
All Methods Static Methods Concrete Methods 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.
-
-
-
Field Detail
-
GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB, GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
Accepted by thepname
parameter of GetIntegerv, GetBooleanv, GetFloatv, GetDoublev and GetInteger64v.
-
GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB, GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
Accepted by thepname
parameter of GetIntegeri_v, GetBooleani_v, GetFloati_v, GetDoublei_v and GetInteger64i_v.
-
-
Method Detail
-
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_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 ofgroup_size_x
,group_size_y
, orgroup_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 ofgroup_size_x
,group_size_y
, andgroup_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
).- 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
-
-