class new in 2020.06
PipelineStatisticsQueryPipeline statistics query.
Provides various data about the rendering pipeline, useful for profiling and performance measurements.
Base classes
- class AbstractQuery
- Base class for queries.
Public types
- enum class Target: GLenum { VerticesSubmitted = GL_VERTICES_SUBMITTED, PrimitivesSubmitted = GL_PRIMITIVES_SUBMITTED, VertexShaderInvocations = GL_VERTEX_SHADER_INVOCATIONS, TessellationControlShaderPatches = GL_TESS_CONTROL_SHADER_PATCHES, TessellationEvaluationShaderInvocations = GL_TESS_EVALUATION_SHADER_INVOCATIONS, GeometryShaderInvocations = GL_GEOMETRY_SHADER_INVOCATIONS, GeometryShaderPrimitivesEmitted = GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED, FragmentShaderInvocations = GL_FRAGMENT_SHADER_INVOCATIONS, ComputeShaderInvocations = GL_COMPUTE_SHADER_INVOCATIONS, ClippingInputPrimitives = GL_CLIPPING_INPUT_PRIMITIVES, ClippingOutputPrimitives = GL_CLIPPING_OUTPUT_PRIMITIVES }
- Query target.
Public static functions
- static auto wrap(GLuint id, Target target, ObjectFlags flags = {}) -> PipelineStatisticsQuery
- Wrap existing OpenGL time query object.
Constructors, destructors, conversion operators
- PipelineStatisticsQuery(Target target) explicit
- Constructor.
- PipelineStatisticsQuery(NoCreateT) explicit noexcept
- Construct without creating the underlying OpenGL object.
- PipelineStatisticsQuery(const PipelineStatisticsQuery&) deleted
- Copying is not allowed.
- PipelineStatisticsQuery(PipelineStatisticsQuery&&) defaulted noexcept
- Move constructor.
Public functions
- auto operator=(const PipelineStatisticsQuery&) -> PipelineStatisticsQuery& deleted
- Copying is not allowed.
- auto operator=(PipelineStatisticsQuery&&) -> PipelineStatisticsQuery& defaulted noexcept
- Move assignment.
Enum documentation
enum class Magnum:: GL:: PipelineStatisticsQuery:: Target: GLenum
Query target.
Enumerators | |
---|---|
VerticesSubmitted |
Count of vertices submitted to the primitive assembler. Note that this doesn't take index buffer or strips/fans into account. |
PrimitivesSubmitted |
Count of primitives submitted to the primitive assembler. |
VertexShaderInvocations |
Count of vertex shader invocations. For indexed draws this is usually less than Target:: |
TessellationControlShaderPatches |
Count of patches processed by tessellation control shader stage. |
TessellationEvaluationShaderInvocations |
Count of tessellation evaluation shader invocations. |
GeometryShaderInvocations |
Count of geometry shader invocations. |
GeometryShaderPrimitivesEmitted |
Count of primitives emitted by a geometry shader. Compared to PrimitiveQuery:: |
FragmentShaderInvocations |
Count of fragment shader invocations. |
ComputeShaderInvocations |
Count of compute shader invocations. |
ClippingInputPrimitives |
Count of primitives that entered the clipping stage. |
ClippingOutputPrimitives |
Count of primitives that passed the clipping stage. In an ideal case of CPU-side frustum culling, the value reported by this query is the same as Target:: |
Function documentation
static PipelineStatisticsQuery Magnum:: GL:: PipelineStatisticsQuery:: wrap(GLuint id,
Target target,
ObjectFlags flags = {})
Wrap existing OpenGL time query object.
Parameters | |
---|---|
id | OpenGL time query ID |
target | Query target |
flags | Object creation flags |
The id
is expected to be of an existing OpenGL query object. Unlike query created using constructor, the OpenGL object is by default not deleted on destruction, use flags
for different behavior.
Magnum:: GL:: PipelineStatisticsQuery:: PipelineStatisticsQuery(Target target) explicit
Constructor.
Creates new OpenGL query object. If ARB_
Magnum:: GL:: PipelineStatisticsQuery:: PipelineStatisticsQuery(NoCreateT) explicit noexcept
Construct without creating the underlying OpenGL object.
The constructed instance is equivalent to moved-from state. Useful in cases where you will overwrite the instance later anyway. Move another object over it to make it useful.
This function can be safely used for constructing (and later destructing) objects even without any OpenGL context being active. However note that this is a low-level and a potentially dangerous API, see the documentation of NoCreate for alternatives.