+ case GL_QUERY_COUNTER_BITS:
+ switch (target) {
+ case GL_SAMPLES_PASSED:
+ *params = ctx->Const.QueryCounterBits.SamplesPassed;
+ break;
+ case GL_ANY_SAMPLES_PASSED:
+ case GL_ANY_SAMPLES_PASSED_CONSERVATIVE:
+ /* The minimum value of this is 1 if it's nonzero, and the value
+ * is only ever GL_TRUE or GL_FALSE, so no sense in reporting more
+ * bits.
+ */
+ *params = 1;
+ break;
+ case GL_TIME_ELAPSED:
+ *params = ctx->Const.QueryCounterBits.TimeElapsed;
+ break;
+ case GL_TIMESTAMP:
+ *params = ctx->Const.QueryCounterBits.Timestamp;
+ break;
+ case GL_PRIMITIVES_GENERATED:
+ *params = ctx->Const.QueryCounterBits.PrimitivesGenerated;
+ break;
+ case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
+ *params = ctx->Const.QueryCounterBits.PrimitivesWritten;
+ break;
+ case GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW:
+ case GL_TRANSFORM_FEEDBACK_OVERFLOW:
+ /* The minimum value of this is 1 if it's nonzero, and the value
+ * is only ever GL_TRUE or GL_FALSE, so no sense in reporting more
+ * bits.
+ */
+ *params = 1;
+ break;
+ case GL_VERTICES_SUBMITTED:
+ *params = ctx->Const.QueryCounterBits.VerticesSubmitted;
+ break;
+ case GL_PRIMITIVES_SUBMITTED:
+ *params = ctx->Const.QueryCounterBits.PrimitivesSubmitted;
+ break;
+ case GL_VERTEX_SHADER_INVOCATIONS:
+ *params = ctx->Const.QueryCounterBits.VsInvocations;
+ break;
+ case GL_TESS_CONTROL_SHADER_PATCHES:
+ *params = ctx->Const.QueryCounterBits.TessPatches;
+ break;
+ case GL_TESS_EVALUATION_SHADER_INVOCATIONS:
+ *params = ctx->Const.QueryCounterBits.TessInvocations;
+ break;
+ case GL_GEOMETRY_SHADER_INVOCATIONS:
+ *params = ctx->Const.QueryCounterBits.GsInvocations;
+ break;
+ case GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED:
+ *params = ctx->Const.QueryCounterBits.GsPrimitives;
+ break;
+ case GL_FRAGMENT_SHADER_INVOCATIONS:
+ *params = ctx->Const.QueryCounterBits.FsInvocations;
+ break;
+ case GL_COMPUTE_SHADER_INVOCATIONS:
+ *params = ctx->Const.QueryCounterBits.ComputeInvocations;
+ break;
+ case GL_CLIPPING_INPUT_PRIMITIVES:
+ *params = ctx->Const.QueryCounterBits.ClInPrimitives;
+ break;
+ case GL_CLIPPING_OUTPUT_PRIMITIVES:
+ *params = ctx->Const.QueryCounterBits.ClOutPrimitives;
+ break;
+ default:
+ _mesa_problem(ctx,
+ "Unknown target in glGetQueryIndexediv(target = %s)",
+ _mesa_enum_to_string(target));
+ *params = 0;
+ break;