Revert "st/pbo: use cso_set_vertex_buffers_and_elements() for st_pbo_draw"
authorMarek Olšák <marek.olsak@amd.com>
Tue, 20 Apr 2021 09:20:08 +0000 (05:20 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 21 Apr 2021 16:16:20 +0000 (16:16 +0000)
cso_set_vertex_buffers_and_elements shouldn't be used between cso_save
and cso_restore because it can switch for cso_context to u_vbuf and vice
versa. Also, ẗhe preferred order of calls for future VB+draw merging would
be set_vertex_elements followed by set_vertex_buffers.

This reverts commit 33e117ed7f3c48d3dbeda9a28603a121eac7a860.

Fixes: 33e117ed7f3c48d3dbeda9a28603a121eac7a860
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4674

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10342>

src/mesa/state_tracker/st_pbo.c

index 3430e57..ddd3a19 100644 (file)
@@ -253,8 +253,12 @@ st_pbo_draw(struct st_context *st, const struct st_pbo_addresses *addr,
       velem.velems[0].vertex_buffer_index = 0;
       velem.velems[0].src_format = PIPE_FORMAT_R32G32_FLOAT;
 
-      cso_set_vertex_buffers_and_elements(cso, &velem, 1, 0, true, false, &vbo);
+      cso_set_vertex_elements(cso, &velem);
+
+      cso_set_vertex_buffers(cso, 0, 1, &vbo);
       st->last_num_vbuffers = MAX2(st->last_num_vbuffers, 1);
+
+      pipe_resource_reference(&vbo.buffer.resource, NULL);
    }
 
    /* Upload constants */