aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2015-07-03 16:20:32 +0200
committerEmil Velikov <[email protected]>2015-07-08 13:34:06 +0100
commit8ef284366c4a0daf4bd0953dc8369362efb49055 (patch)
treec7c7c09659dd1ecbef36bd61bf60e4d97d403009 /src/gallium
parent0b5a9660dc1210558e093d8690516c833a87a330 (diff)
r600g: disable single-sample fast color clear due to hangs
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73528 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82186 Cc: 10.4 10.5 10.6 <[email protected]> (cherry picked from commit 97ec2c694fe568e375ec7a2b85c1acb1e4666b54)
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/r600/r600_blit.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 01262a59e90..8e553a8e3b9 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -393,7 +393,12 @@ static void r600_clear(struct pipe_context *ctx, unsigned buffers,
struct r600_context *rctx = (struct r600_context *)ctx;
struct pipe_framebuffer_state *fb = &rctx->framebuffer.state;
- if (buffers & PIPE_CLEAR_COLOR && rctx->b.chip_class >= EVERGREEN) {
+ /* Single-sample fast color clear is broken on r600g:
+ * https://bugs.freedesktop.org/show_bug.cgi?id=73528
+ * https://bugs.freedesktop.org/show_bug.cgi?id=82186
+ */
+ if (buffers & PIPE_CLEAR_COLOR && rctx->b.chip_class >= EVERGREEN &&
+ rctx->framebuffer.nr_samples > 1) {
evergreen_do_fast_color_clear(&rctx->b, fb, &rctx->framebuffer.atom,
&buffers, color);
}