svga: do not unconditionally enable streamout bind flag
authorCharmaine Lee <charmainel@vmware.com>
Tue, 15 Nov 2016 18:15:46 +0000 (10:15 -0800)
committerBrian Paul <brianp@vmware.com>
Tue, 27 Jun 2017 13:49:02 +0000 (07:49 -0600)
commit7abfb0b0d50798a476907d4b2f47db05a314cb49
tree75f94ce38b2fe8732fa1d5c4066426319dc380cf
parentb549f5e6b1dfba42b96d4181116715bf218a66dc
svga: do not unconditionally enable streamout bind flag

Currently we unconditionally enable streamout bind flag at
buffer resource creation time. This is not necessary if the buffer
is never used as a streamout buffer. With this patch, we enable
streamout bind flag as indicated by the state tracker. If the buffer
is later bound to streamout and does not already has streamout bind
flag enabled, we will recreate the buffer with
the new set of bind flags. Buffer content will be copied
from the old buffer to the new one.

Tested with MTT piglit, Nature, Tropics, Lightsmark.

v2: Fix bind flags check as suggested by Brian.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/drivers/svga/svga_pipe_streamout.c
src/gallium/drivers/svga/svga_resource_buffer.c
src/gallium/drivers/svga/svga_resource_buffer_upload.c
src/gallium/drivers/svga/svga_resource_buffer_upload.h