From 4ace4190ac0f4f873cf93189d3b934d36acd3329 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 17 Sep 2014 14:34:06 +0200 Subject: [PATCH] r300g: implement MSAA copies by resolving and upsampling There's no other way. It will use hw resolve + blit. --- src/gallium/drivers/r300/r300_blit.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/r300/r300_blit.c b/src/gallium/drivers/r300/r300_blit.c index 2320abb9756..4e7efc560a4 100644 --- a/src/gallium/drivers/r300/r300_blit.c +++ b/src/gallium/drivers/r300/r300_blit.c @@ -679,7 +679,9 @@ static boolean r300_is_simple_msaa_resolve(const struct pipe_blit_info *info) unsigned dst_width = u_minify(info->dst.resource->width0, info->dst.level); unsigned dst_height = u_minify(info->dst.resource->height0, info->dst.level); - return info->dst.resource->format == info->src.resource->format && + return info->src.resource->nr_samples > 1 && + info->dst.resource->nr_samples <= 1 && + info->dst.resource->format == info->src.resource->format && info->dst.resource->format == info->dst.format && info->src.resource->format == info->src.format && !info->scissor_enable && @@ -803,7 +805,6 @@ static void r300_blit(struct pipe_context *pipe, /* MSAA resolve. */ if (info.src.resource->nr_samples > 1 && - info.dst.resource->nr_samples <= 1 && !util_format_is_depth_or_stencil(info.src.resource->format)) { r300_msaa_resolve(pipe, &info); return; -- 2.30.2