From 5330c5a248aa9dbb45cfde55d5488d982cedff7f Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Mon, 14 Jan 2013 00:27:28 +0100 Subject: r300g: fix MSAA resolve to an untiled texture RB3D_DEBUG_CTL doesn't help, so I resolve to a tiled temporary texture and then blitting it to the destination one, which we also do in other situations. --- src/gallium/drivers/r300/r300_blit.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/gallium/drivers/r300/r300_blit.c') diff --git a/src/gallium/drivers/r300/r300_blit.c b/src/gallium/drivers/r300/r300_blit.c index 0490160aad8..f8d3b1fd1d1 100644 --- a/src/gallium/drivers/r300/r300_blit.c +++ b/src/gallium/drivers/r300/r300_blit.c @@ -626,7 +626,9 @@ static boolean r300_is_simple_msaa_resolve(const struct pipe_blit_info *info) info->src.box.x == 0 && info->src.box.y == 0 && info->src.box.width == dst_width && - info->src.box.height == dst_height; + info->src.box.height == dst_height && + (r300_resource(info->dst.resource)->tex.microtile != RADEON_LAYOUT_LINEAR || + r300_resource(info->dst.resource)->tex.macrotile[info->dst.level] != RADEON_LAYOUT_LINEAR); } static void r300_simple_msaa_resolve(struct pipe_context *pipe, @@ -704,6 +706,7 @@ static void r300_msaa_resolve(struct pipe_context *pipe, templ.depth0 = 1; templ.array_size = 1; templ.usage = PIPE_USAGE_STATIC; + templ.flags = R300_RESOURCE_FORCE_MICROTILING; tmp = screen->resource_create(screen, &templ); -- cgit v1.2.3