diff options
Diffstat (limited to 'src/gallium/drivers/nouveau/nvc0')
-rw-r--r-- | src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c b/src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c index 3270207c703..5cf02387da3 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c @@ -927,6 +927,17 @@ nvc0_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info, const struct pipe_draw_start_count *draws, unsigned num_draws) { + if (num_draws > 1) { + struct pipe_draw_info tmp_info = *info; + + for (unsigned i = 0; i < num_draws; i++) { + nvc0_draw_vbo(pipe, &tmp_info, indirect, &draws[i], 1); + if (tmp_info.increment_draw_id) + tmp_info.drawid++; + } + return; + } + struct nvc0_context *nvc0 = nvc0_context(pipe); struct nouveau_pushbuf *push = nvc0->base.pushbuf; struct nvc0_screen *screen = nvc0->screen; |