From 4a1af434e6bfc80fceab2a472e7a79de59aca823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 20 Jan 2013 18:09:58 +0100 Subject: r300g: add a workaround for the AA colorbuffer addressing bug on R500 --- src/gallium/drivers/r300/r300_state.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/gallium/drivers/r300/r300_state.c') diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index e5d9beb..fd02f82 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -839,14 +839,18 @@ static unsigned r300_get_num_samples(struct r300_context *r300) { struct pipe_framebuffer_state* fb = (struct pipe_framebuffer_state*)r300->fb_state.state; - unsigned num_samples; + unsigned i, num_samples; - if (fb->nr_cbufs) - num_samples = fb->cbufs[0]->texture->nr_samples; - else if (fb->zsbuf) - num_samples = fb->zsbuf->texture->nr_samples; - else - num_samples = 1; + if (!fb->nr_cbufs && !fb->zsbuf) + return 1; + + num_samples = 6; + + for (i = 0; i < fb->nr_cbufs; i++) + num_samples = MIN2(num_samples, fb->cbufs[i]->texture->nr_samples); + + if (fb->zsbuf) + num_samples = MIN2(num_samples, fb->zsbuf->texture->nr_samples); if (!num_samples) num_samples = 1; -- cgit v1.1