[Mesa-dev] [PATCH 1/2] Differentiate between GenQueries and GenQueriesARB
Matt Turner
mattst88 at gmail.com
Wed Apr 6 18:08:46 UTC 2016
On Tue, Apr 5, 2016 at 4:27 AM, <kevin.rogovin at intel.com> wrote:
> From: Kevin Rogovin <kevin.rogovin at intel.com>
Subject is missing a required prefix.
> The extension, GL_ARB_occlusion_queries mandates that an
> INVALID_OPERATION should be thrown if GenQueriesARB is
> called while a query is active. In contrast, the GL spec
> has no such requirement for GenQueries. This patch unaliases
> the two functions and has that the ARB variant performs
> that extra check.
>
> Signed-off-by: Kevin Rogovin <kevin.rogovin at intel.com>
> ---
> src/mapi/glapi/gen/gl_API.xml | 2 +-
> src/mesa/main/queryobj.c | 20 +++++++++++++++++++-
> src/mesa/main/queryobj.h | 2 ++
> 3 files changed, 22 insertions(+), 2 deletions(-)
>
> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
> index cdd680c..5918e63 100644
> --- a/src/mapi/glapi/gen/gl_API.xml
> +++ b/src/mapi/glapi/gen/gl_API.xml
> @@ -7564,7 +7564,7 @@
> </enum>
> <enum name="SAMPLES_PASSED_ARB" value="0x8914"/>
>
> - <function name="GenQueriesARB" alias="GenQueries">
> + <function name="GenQueriesARB">
> <param name="n" type="GLsizei"/>
> <param name="ids" type="GLuint *"/>
> </function>
> diff --git a/src/mesa/main/queryobj.c b/src/mesa/main/queryobj.c
> index 7a70b59..43f1b0c 100644
> --- a/src/mesa/main/queryobj.c
> +++ b/src/mesa/main/queryobj.c
> @@ -236,7 +236,8 @@ get_query_binding_point(struct gl_context *ctx, GLenum target, GLuint index)
>
> /**
> * Create $n query objects and store them in *ids. Make them of type $target
> - * if dsa is set. Called from _mesa_GenQueries() and _mesa_CreateQueries().
> + * if dsa is set. Called from _mesa_GenQueries(), _mesa_GenQueriesARB()
> + * and _mesa_CreateQueries().
> */
> static void
> create_queries(struct gl_context *ctx, GLenum target, GLsizei n, GLuint *ids,
> @@ -281,6 +282,23 @@ _mesa_GenQueries(GLsizei n, GLuint *ids)
> }
>
> void GLAPIENTRY
> +_mesa_GenQueriesARB(GLsizei n, GLuint *ids)
> +{
> + GET_CURRENT_CONTEXT(ctx);
> + /* From GL_ARB_occlusion_query:
> + "The error INVALID_OPERATION is generated if GenQueriesARB or
> + DeleteQueriesARB is called when a query of any target is active."
Newline after quote.
Multiline comment begins with *
> + That extension only support the target SAMPLES_PASSED_ARB, so we
> + only check for CurrentOcclusionObject
> + */
> + if(ctx->Query.CurrentOcclusionObject != NULL) {
Space after if.
More information about the mesa-dev
mailing list