From 9cc257ad401feaf5bb94ad8d063523ea98b9d44a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 12 Sep 2012 22:29:23 +0200 Subject: [PATCH] gallium/u_blitter: check PIPE_CAP_TEXTURE_MULTISAMPLE MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Tested-by: Michel Dänzer Reviewed-by: Brian Paul --- src/gallium/auxiliary/util/u_blitter.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index 35b8edba75c..b94366b998d 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -121,6 +121,7 @@ struct blitter_context_priv boolean vertex_has_integers; boolean has_stream_out; boolean has_stencil_export; + boolean has_texture_multisample; }; @@ -169,6 +170,9 @@ struct blitter_context *util_blitter_create(struct pipe_context *pipe) pipe->screen->get_param(pipe->screen, PIPE_CAP_SHADER_STENCIL_EXPORT); + ctx->has_texture_multisample = + pipe->screen->get_param(pipe->screen, PIPE_CAP_TEXTURE_MULTISAMPLE); + /* blend state objects */ memset(&blend, 0, sizeof(blend)); ctx->blend_keep_color = pipe->create_blend_state(pipe, &blend); @@ -1057,6 +1061,10 @@ boolean util_blitter_is_copy_supported(struct blitter_context *blitter, } if (src) { + if (src->nr_samples > 1 && !ctx->has_texture_multisample) { + return FALSE; + } + if (!screen->is_format_supported(screen, src->format, src->target, src->nr_samples, PIPE_BIND_SAMPLER_VIEW)) { return FALSE; -- 2.30.2