From 28144c4476343a5e2f679ce96ec72cddc5762b04 Mon Sep 17 00:00:00 2001 From: Eduardo Lima Mitev Date: Tue, 27 Oct 2015 16:16:24 +0100 Subject: [PATCH] i965: Add boilerplate function for QueryInternalFormat driver hook By default, we call back the driver's hook fallback function that has generic implementations for the all the queries. Reviewed-by: Dave Airlie --- src/mesa/drivers/dri/i965/Makefile.sources | 1 + src/mesa/drivers/dri/i965/brw_context.c | 1 + src/mesa/drivers/dri/i965/brw_context.h | 5 +++ src/mesa/drivers/dri/i965/brw_formatquery.c | 45 +++++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 src/mesa/drivers/dri/i965/brw_formatquery.c diff --git a/src/mesa/drivers/dri/i965/Makefile.sources b/src/mesa/drivers/dri/i965/Makefile.sources index bc1cd86ae6d..46895882414 100644 --- a/src/mesa/drivers/dri/i965/Makefile.sources +++ b/src/mesa/drivers/dri/i965/Makefile.sources @@ -123,6 +123,7 @@ i965_FILES = \ brw_ff_gs.h \ brw_fs_channel_expressions.cpp \ brw_fs_vector_splitting.cpp \ + brw_formatquery.c \ brw_gs.c \ brw_gs.h \ brw_gs_state.c \ diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index f5e4aced52c..a6567f827b1 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -380,6 +380,7 @@ brw_init_driver_functions(struct brw_context *brw, brw_init_conditional_render_functions(functions); functions->QuerySamplesForFormat = brw_query_samples_for_format; + functions->QueryInternalFormat = brw_query_internal_format; functions->NewTransformFeedback = brw_new_transform_feedback; functions->DeleteTransformFeedback = brw_delete_transform_feedback; diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 6b82bea52c0..88f0d49a5ff 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1875,6 +1875,11 @@ void brw_emit_depth_stall_flushes(struct brw_context *brw); void gen7_emit_vs_workaround_flush(struct brw_context *brw); void gen7_emit_cs_stall_flush(struct brw_context *brw); +/* brw_queryformat.c */ +void brw_query_internal_format(struct gl_context *ctx, GLenum target, + GLenum internalFormat, GLenum pname, + GLint *params); + #ifdef __cplusplus } #endif diff --git a/src/mesa/drivers/dri/i965/brw_formatquery.c b/src/mesa/drivers/dri/i965/brw_formatquery.c new file mode 100644 index 00000000000..ad59f03e576 --- /dev/null +++ b/src/mesa/drivers/dri/i965/brw_formatquery.c @@ -0,0 +1,45 @@ +/* + * Copyright © 2015 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include "brw_context.h" +#include "main/formatquery.h" + +void +brw_query_internal_format(struct gl_context *ctx, GLenum target, + GLenum internalFormat, GLenum pname, GLint *params) +{ + /* The Mesa layer gives us a temporary params buffer that is guaranteed + * to be non-NULL, and have at least 16 elements. + */ + assert(params != NULL); + + switch (pname) { + default: + /* By default, we call the driver hook's fallback function from the frontend, + * which has generic implementation for all pnames. + */ + _mesa_query_internal_format_default(ctx, target, internalFormat, pname, + params); + break; + } +} -- 2.30.2