summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri
diff options
context:
space:
mode:
authorEduardo Lima Mitev <[email protected]>2015-11-24 21:43:28 +0100
committerEduardo Lima Mitev <[email protected]>2016-03-03 15:14:05 +0100
commit82be7735f32776e76300de3602a72fc236b7261e (patch)
treebd3a290f90f2a7b73baadb91deb3583a3212569f /src/mesa/drivers/dri
parent2dabff9068a86a070615df587e4e9327b1d1ca6e (diff)
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 <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.c1
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_formatquery.c16
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.