# Portal:OpenGL Shading Language/Compute Shader

The **Compute Shader** is the shader stage for doing arbitrary computations. It uses an execution model based on groups of shader invocations which can share data. The invocations within these "work groups" can inter-communicate reasonably freely, with relatively minimal overhead. The compute shader determines how many invocations go into each work group, though the maximum number is limited.

Compute shaders are not invoked by rendering operations. They are instead started by calling a special dispatch function. Each execution of a compute shader will run the given number of work groups.

While compute shaders could in theory take the place of rendering, this is not a practical use for them.