summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2013-07-15 03:53:09 +0200
committerCarl Worth <cworth@cworth.org>2013-07-30 12:45:35 -0700
commit2772ba41e0b09cb9bd66fbc2eb769bcb937380d7 (patch)
tree2ba293c3a40987c7e094309c89baf89801e05a80
parent4fb5c6f77b6ee26857c7fa8cb9d77485e6c3d548 (diff)
r300g/swtcl: fix a lockup in MSAA resolve
Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 7969b567bd4361b44ead6ed5eb86218769a025be)
-rw-r--r--src/gallium/drivers/r300/r300_render.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c
index 5416c3a7495..175b83a1ace 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -1122,6 +1122,13 @@ void r300_blitter_draw_rectangle(struct blitter_context *blitter,
static const union pipe_color_union zeros;
CS_LOCALS(r300);
+ /* XXX workaround for a lockup in MSAA resolve on SWTCL chipsets, this
+ * function most probably doesn't handle type=NONE correctly */
+ if (!r300->screen->caps.has_tcl && type == UTIL_BLITTER_ATTRIB_NONE) {
+ util_blitter_draw_rectangle(blitter, x1, y1, x2, y2, depth, type, attrib);
+ return;
+ }
+
if (r300->skip_rendering)
return;