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 <airlied@redhat.com>
This commit is contained in:
Eduardo Lima Mitev 2015-11-24 21:43:28 +01:00
parent 2dabff9068
commit 82be7735f3
3 changed files with 15 additions and 4 deletions

View file

@ -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;

View file

@ -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);

View file

@ -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.