From: Marek Olšák Date: Mon, 31 May 2010 02:01:56 +0000 (+0200) Subject: r300g: set correct pitch in libdrm X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=21dfcde3ff54e0d01ddd2c79b14db82b57541433;p=mesa.git r300g: set correct pitch in libdrm to match what DDX sets. This prevents some flushes from occuring. --- diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index d68f4039ca4..cfec8ac2b7e 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -540,18 +540,18 @@ static void r300_fb_set_tiling_flags(struct r300_context *r300, level = new_state->cbufs[i]->level; r300->rws->buffer_set_tiling(r300->rws, tex->buffer, - tex->pitch[0], - tex->microtile, - tex->mip_macrotile[level]); + tex->pitch[0] * util_format_get_blocksize(tex->b.b.format), + tex->microtile, + tex->mip_macrotile[level]); } if (new_state->zsbuf) { tex = r300_texture(new_state->zsbuf->texture); level = new_state->zsbuf->level; r300->rws->buffer_set_tiling(r300->rws, tex->buffer, - tex->pitch[0], - tex->microtile, - tex->mip_macrotile[level]); + tex->pitch[0] * util_format_get_blocksize(tex->b.b.format), + tex->microtile, + tex->mip_macrotile[level]); } } diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c index 4a5c932b7e8..a4b5d34ce1f 100644 --- a/src/gallium/drivers/r300/r300_texture.c +++ b/src/gallium/drivers/r300/r300_texture.c @@ -963,9 +963,9 @@ struct pipe_resource* r300_texture_create(struct pipe_screen* screen, base->bind, tex->size); rws->buffer_set_tiling(rws, tex->buffer, - tex->pitch[0], - tex->microtile, - tex->macrotile); + tex->pitch[0] * util_format_get_blocksize(tex->b.b.format), + tex->microtile, + tex->macrotile); if (!tex->buffer) { FREE(tex); @@ -1093,9 +1093,9 @@ r300_texture_from_handle(struct pipe_screen* screen, if (override_zb_flags) { rws->buffer_set_tiling(rws, tex->buffer, - tex->pitch[0], - tex->microtile, - tex->macrotile); + tex->pitch[0] * util_format_get_blocksize(tex->b.b.format), + tex->microtile, + tex->macrotile); } return (struct pipe_resource*)tex; }