From 82be7735f32776e76300de3602a72fc236b7261e Mon Sep 17 00:00:00 2001 From: Eduardo Lima Mitev Date: Tue, 24 Nov 2015 21:43:28 +0100 Subject: [PATCH] i965/formatquery: Respond queries SAMPLES and NUM_SAMPLE_COUNTS This effectively disables old QuerySamplesForFormat driver hook, since it is never called by Mesa anymore. v2: Call brw_query_samples_for_format() with a dummy buffer to calculate num samples, to avoid modifying the original buffer. Reviewed-by: Dave Airlie --- src/mesa/drivers/dri/i965/brw_context.c | 1 - src/mesa/drivers/dri/i965/brw_context.h | 2 -- src/mesa/drivers/dri/i965/brw_formatquery.c | 16 +++++++++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index c16da0d2291..378366408ae 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -341,7 +341,6 @@ brw_init_driver_functions(struct brw_context *brw, if (brw->gen >= 7) 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; diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 8fca80b617c..88f0d49a5ff 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1876,8 +1876,6 @@ void gen7_emit_vs_workaround_flush(struct brw_context *brw); void gen7_emit_cs_stall_flush(struct brw_context *brw); /* brw_queryformat.c */ -size_t brw_query_samples_for_format(struct gl_context *ctx, GLenum target, - GLenum internalFormat, int samples[16]); void brw_query_internal_format(struct gl_context *ctx, GLenum target, GLenum internalFormat, GLenum pname, GLint *params); diff --git a/src/mesa/drivers/dri/i965/brw_formatquery.c b/src/mesa/drivers/dri/i965/brw_formatquery.c index 5ee1d69dae2..576e36fcae3 100644 --- a/src/mesa/drivers/dri/i965/brw_formatquery.c +++ b/src/mesa/drivers/dri/i965/brw_formatquery.c @@ -24,7 +24,7 @@ #include "brw_context.h" #include "main/formatquery.h" -size_t +static size_t brw_query_samples_for_format(struct gl_context *ctx, GLenum target, GLenum internalFormat, int samples[16]) { @@ -73,6 +73,20 @@ brw_query_internal_format(struct gl_context *ctx, GLenum target, assert(params != NULL); switch (pname) { + case GL_SAMPLES: + brw_query_samples_for_format(ctx, target, internalFormat, params); + break; + + case GL_NUM_SAMPLE_COUNTS: { + size_t num_samples; + GLint dummy_buffer[16]; + + num_samples = brw_query_samples_for_format(ctx, target, internalFormat, + dummy_buffer); + params[0] = (GLint) num_samples; + break; + } + default: /* By default, we call the driver hook's fallback function from the frontend, * which has generic implementation for all pnames. -- 2.30.2