From: Michel Dänzer Date: Wed, 12 Sep 2012 10:59:49 +0000 (+0200) Subject: radeonsi: Fix calculation of number of records in buffer resource. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d67d8e24718a7ab991caa6798563e53ae343cede;p=mesa.git radeonsi: Fix calculation of number of records in buffer resource. The value was too small by 1 in some cases (non-first of several vertex elements interleaved in a single buffer). Fixes intermittent incorrect geometry in many apps, e.g. piglit spec/EXT_texture_snorm/fbo-generatemipmap-formats. Signed-off-by: Michel Dänzer Reviewed-by: Christian König --- diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index c71ad43db24..0cb8b7180e4 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -455,7 +455,7 @@ static void si_vertex_buffer_update(struct r600_context *rctx) si_pm4_sh_data_add(pm4, va & 0xFFFFFFFF); si_pm4_sh_data_add(pm4, (S_008F04_BASE_ADDRESS_HI(va >> 32) | S_008F04_STRIDE(vb->stride))); - si_pm4_sh_data_add(pm4, (vb->buffer->width0 - offset) / + si_pm4_sh_data_add(pm4, (vb->buffer->width0 - vb->buffer_offset) / MAX2(vb->stride, 1)); si_pm4_sh_data_add(pm4, rctx->vertex_elements->rsrc_word3[i]);