u_vbuf: set user buffer pointer for drivers which support user buffers
authorMarek Olšák <maraeo@gmail.com>
Mon, 30 Apr 2012 22:11:25 +0000 (00:11 +0200)
committerMarek Olšák <maraeo@gmail.com>
Mon, 30 Apr 2012 22:19:45 +0000 (00:19 +0200)
It's not common to end up in u_vbuf and at the same time support user buffers
in a driver, but such a combination should work.

src/gallium/auxiliary/util/u_vbuf.c

index 400fada18302da9a583491c1932154896d4f9c6f..4141ba536fd64a0778eccc32449eb145831297e3 100644 (file)
@@ -717,6 +717,7 @@ void u_vbuf_set_vertex_buffers(struct u_vbuf *mgr, unsigned count,
 
       real_vb->buffer_offset = orig_vb->buffer_offset = vb->buffer_offset;
       real_vb->stride = orig_vb->stride = vb->stride;
+      real_vb->user_buffer = NULL;
 
       if (vb->stride) {
          mgr->nonzero_stride_vb_mask |= 1 << i;
@@ -741,6 +742,7 @@ void u_vbuf_set_vertex_buffers(struct u_vbuf *mgr, unsigned count,
       }
 
       pipe_resource_reference(&real_vb->buffer, vb->buffer);
+      real_vb->user_buffer = vb->user_buffer;
    }
 
    for (i = count; i < mgr->nr_vertex_buffers; i++) {