summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2015-07-03 16:20:32 +0200
committerMarek Olšák <[email protected]>2015-07-03 16:26:11 +0200
commit97ec2c694fe568e375ec7a2b85c1acb1e4666b54 (patch)
treefb7a3e60836ae94b4a40b7b721f1b7938156d321
parent7744687ddb7f1b223da6a862c282173123921023 (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]>
-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);
}