diff options
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/nvfx/nvfx_vbo.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/gallium/drivers/nvfx/nvfx_vbo.c b/src/gallium/drivers/nvfx/nvfx_vbo.c index 0ebeadc870..b8e94885f0 100644 --- a/src/gallium/drivers/nvfx/nvfx_vbo.c +++ b/src/gallium/drivers/nvfx/nvfx_vbo.c @@ -122,11 +122,12 @@ nvfx_vbo_static_attrib(struct nvfx_context *nvfx, struct pipe_transfer *transfer; struct nouveau_channel* chan = nvfx->screen->base.channel; void *map; + float *v; map = pipe_buffer_map(&nvfx->pipe, vb->buffer, PIPE_TRANSFER_READ, &transfer); map = (uint8_t *) map + vb->buffer_offset + ve->src_offset; - float *v = map; + v = map; switch (ncomp) { case 4: @@ -173,11 +174,11 @@ nvfx_draw_arrays(struct pipe_context *pipe, } while (count) { - unsigned vc, nr; + unsigned vc, nr, avail; nvfx_state_emit(nvfx); - unsigned avail = AVAIL_RING(chan); + avail = AVAIL_RING(chan); avail -= 16 + (avail >> 10); /* for the BEGIN_RING_NIs, conservatively assuming one every 1024, plus 16 for safety */ vc = nouveau_vbuf_split(avail, 6, 256, @@ -229,11 +230,11 @@ nvfx_draw_elements_u08(struct nvfx_context *nvfx, void *ib, while (count) { uint8_t *elts = (uint8_t *)ib + start; - unsigned vc, push, restart = 0; + unsigned vc, push, restart = 0, avail; nvfx_state_emit(nvfx); - unsigned avail = AVAIL_RING(chan); + avail = AVAIL_RING(chan); avail -= 16 + (avail >> 10); /* for the BEGIN_RING_NIs, conservatively assuming one every 1024, plus 16 for safety */ vc = nouveau_vbuf_split(avail, 6, 2, @@ -282,11 +283,11 @@ nvfx_draw_elements_u16(struct nvfx_context *nvfx, void *ib, while (count) { uint16_t *elts = (uint16_t *)ib + start; - unsigned vc, push, restart = 0; + unsigned vc, push, restart = 0, avail; nvfx_state_emit(nvfx); - unsigned avail = AVAIL_RING(chan); + avail = AVAIL_RING(chan); avail -= 16 + (avail >> 10); /* for the BEGIN_RING_NIs, conservatively assuming one every 1024, plus 16 for safety */ vc = nouveau_vbuf_split(avail, 6, 2, @@ -335,11 +336,11 @@ nvfx_draw_elements_u32(struct nvfx_context *nvfx, void *ib, while (count) { uint32_t *elts = (uint32_t *)ib + start; - unsigned vc, push, restart = 0; + unsigned vc, push, restart = 0, avail; nvfx_state_emit(nvfx); - unsigned avail = AVAIL_RING(chan); + avail = AVAIL_RING(chan); avail -= 16 + (avail >> 10); /* for the BEGIN_RING_NIs, conservatively assuming one every 1024, plus 16 for safety */ vc = nouveau_vbuf_split(avail, 5, 1, @@ -413,11 +414,11 @@ nvfx_draw_elements_vbo(struct pipe_context *pipe, unsigned restart = 0; while (count) { - unsigned nr, vc; + unsigned nr, vc, avail; nvfx_state_emit(nvfx); - unsigned avail = AVAIL_RING(chan); + avail = AVAIL_RING(chan); avail -= 16 + (avail >> 10); /* for the BEGIN_RING_NIs, conservatively assuming one every 1024, plus 16 for safety */ vc = nouveau_vbuf_split(avail, 6, 256, |