diff options
author | Marek Olšák <[email protected]> | 2010-07-12 13:23:24 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2010-07-12 13:26:00 +0200 |
commit | 8c836f7f740c6f74511c727c7bed0680ddba9974 (patch) | |
tree | 2e26e477cb1a9effb97eec38f7734fc87507312f /src/gallium/drivers/r300/r300_state.c | |
parent | 78e8a8765f435bf0902d62afbcb3b8d68a0b716f (diff) |
r300g: implement fast color clear
An initial implementation made by Dave Airlie.
For it to be used, a color-only clear must be invoked and exactly one
point-sampled render target must be set. The render target must be
macrotiled (for us to overcome alignment issues) and bpp must be either
16 or 32.
I can't see a difference in performance. :(
Conflicts:
src/gallium/drivers/r300/r300_blit.c
Diffstat (limited to 'src/gallium/drivers/r300/r300_state.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_state.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index b0722cb95f6..f4c6a262d4a 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -688,7 +688,9 @@ void r300_mark_fb_state_dirty(struct r300_context *r300, /* Now compute the fb_state atom size. */ r300->fb_state.size = 2 + (8 * state->nr_cbufs); - if (state->zsbuf) + if (r300->cbzb_clear) + r300->fb_state.size += 10; + else if (state->zsbuf) r300->fb_state.size += r300->screen->caps.has_hiz ? 18 : 14; /* The size of the rest of atoms stays the same. */ |