vbo: process buffer binding state changes on draw when recording
The VBO module keeps track of any vbo buffers. It updates this list when receiving an InvalidateState call, however this never happens when recording draws right now. Make sure that we do all the usual state updates when recording draws so that the VBO list may be kept up to date. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99631 Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Brian Paul <brianp@vmware.com> Cc: "13.0 17.0" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
6cc3c46f58
commit
e73f87fcbd
|
@ -78,6 +78,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "main/api_arrayelt.h"
|
||||
#include "main/vtxfmt.h"
|
||||
#include "main/dispatch.h"
|
||||
#include "main/state.h"
|
||||
#include "util/bitscan.h"
|
||||
|
||||
#include "vbo_context.h"
|
||||
|
@ -1159,6 +1160,9 @@ _save_OBE_DrawArrays(GLenum mode, GLint start, GLsizei count)
|
|||
if (save->out_of_memory)
|
||||
return;
|
||||
|
||||
/* Make sure to process any VBO binding changes */
|
||||
_mesa_update_state(ctx);
|
||||
|
||||
_ae_map_vbos(ctx);
|
||||
|
||||
vbo_save_NotifyBegin(ctx, (mode | VBO_SAVE_PRIM_WEAK
|
||||
|
@ -1202,6 +1206,9 @@ _save_OBE_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
|
|||
if (save->out_of_memory)
|
||||
return;
|
||||
|
||||
/* Make sure to process any VBO binding changes */
|
||||
_mesa_update_state(ctx);
|
||||
|
||||
_ae_map_vbos(ctx);
|
||||
|
||||
if (_mesa_is_bufferobj(indexbuf))
|
||||
|
|
Loading…
Reference in New Issue