From: Marek Olšák Date: Fri, 12 Feb 2010 03:19:55 +0000 (+0100) Subject: r300g: cleanup the emission of framebuffer state X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=67049b59fdc3fb8dff6a04cb4929f48c28cd88ca;p=mesa.git r300g: cleanup the emission of framebuffer state Some emits are not needed anymore. --- diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index 324952b9776..7399ab8ef39 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -388,8 +388,7 @@ void r300_emit_fb_state(struct r300_context* r300, void* state) int i; CS_LOCALS(r300); - BEGIN_CS((10 * fb->nr_cbufs) + (2 * (4 - fb->nr_cbufs)) + - (fb->zsbuf ? 10 : 0) + 6); + BEGIN_CS((10 * fb->nr_cbufs) + (fb->zsbuf ? 10 : 0) + 6); /* Flush and free renderbuffer caches. */ OUT_CS_REG(R300_RB3D_DSTCACHE_CTLSTAT, @@ -433,11 +432,6 @@ void r300_emit_fb_state(struct r300_context* r300, void* state) r300_translate_out_fmt(surf->format)); } - /* Disable unused colorbuffers. */ - for (; i < 4; i++) { - OUT_CS_REG(R300_US_OUT_FMT_0 + (4 * i), R300_US_OUT_FMT_UNUSED); - } - /* Set up a zbuffer. */ if (fb->zsbuf) { surf = fb->zsbuf; diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 4d158cff7c7..7fc51cd9a62 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -505,9 +505,6 @@ static void unsigned max_width, max_height; uint32_t zbuffer_bpp = 0; - r300->fb_state.size = (10 * state->nr_cbufs) + - (2 * (4 - state->nr_cbufs)) + - (state->zsbuf ? 10 : 0) + 6; if (state->nr_cbufs > 4) { debug_printf("r300: Implementation error: Too many MRTs in %s, " @@ -535,7 +532,8 @@ static void memcpy(r300->fb_state.state, state, sizeof(struct pipe_framebuffer_state)); - /* Don't rely on the order of states being set for the first time. */ + r300->fb_state.size = (10 * state->nr_cbufs) + (state->zsbuf ? 10 : 0) + 6; + /* XXX wait what */ r300->blend_state.dirty = TRUE; r300->dsa_state.dirty = TRUE;