svga: rebind index buffer
Similar to other resources, current index buffer needs to be rebound at the first draw of the current command buffer to make sure the buffer is available for the draw command. Fixes bug 1587263. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
parent
299f8ca0a7
commit
47cfc83440
|
@ -247,6 +247,7 @@ struct pipe_context *svga_context_create(struct pipe_screen *screen,
|
|||
sizeof(svga->state.hw_draw.default_constbuf_size));
|
||||
memset(svga->state.hw_draw.enabled_constbufs, 0,
|
||||
sizeof(svga->state.hw_draw.enabled_constbufs));
|
||||
svga->state.hw_draw.ib = NULL;
|
||||
|
||||
/* Create a no-operation blend state which we will bind whenever the
|
||||
* requested blend state is impossible (e.g. due to having an integer
|
||||
|
|
|
@ -458,6 +458,14 @@ draw_vgpu10(struct svga_hwtnl *hwtnl,
|
|||
ret = svga_rebind_shaders(svga);
|
||||
if (ret != PIPE_OK)
|
||||
return ret;
|
||||
|
||||
/* Rebind index buffer */
|
||||
if (svga->state.hw_draw.ib) {
|
||||
struct svga_winsys_context *swc = svga->swc;
|
||||
ret = swc->resource_rebind(swc, svga->state.hw_draw.ib, NULL, SVGA_RELOC_READ);
|
||||
if (ret != PIPE_OK)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ret = validate_sampler_resources(svga);
|
||||
|
|
Loading…
Reference in New Issue