gallium/vbuf: use the common uploader
authorMarek Olšák <marek.olsak@amd.com>
Fri, 27 Jan 2017 01:04:27 +0000 (02:04 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 14 Feb 2017 20:46:16 +0000 (21:46 +0100)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Tested-by: Charmaine Lee <charmainel@vmware.com>
src/gallium/auxiliary/util/u_vbuf.c

index 532e7c004bfc3aa42fa53802ea06e095cbea54b7..c26a923c7f3cc9f60b93e0ebdfc81298881cc8a7 100644 (file)
@@ -146,7 +146,6 @@ struct u_vbuf {
    struct pipe_context *pipe;
    struct translate_cache *translate_cache;
    struct cso_cache *cso_cache;
-   struct u_upload_mgr *uploader;
 
    /* This is what was set in set_vertex_buffers.
     * May contain user buffers. */
@@ -314,10 +313,6 @@ u_vbuf_create(struct pipe_context *pipe,
    mgr->translate_cache = translate_cache_create();
    memset(mgr->fallback_vbs, ~0, sizeof(mgr->fallback_vbs));
 
-   mgr->uploader = u_upload_create(pipe, 1024 * 1024,
-                                   PIPE_BIND_VERTEX_BUFFER,
-                                   PIPE_USAGE_STREAM);
-
    return mgr;
 }
 
@@ -390,7 +385,6 @@ void u_vbuf_destroy(struct u_vbuf *mgr)
    pipe_resource_reference(&mgr->aux_vertex_buffer_saved.buffer, NULL);
 
    translate_cache_destroy(mgr->translate_cache);
-   u_upload_destroy(mgr->uploader);
    cso_cache_delete(mgr->cso_cache);
    FREE(mgr);
 }
@@ -454,7 +448,7 @@ u_vbuf_translate_buffers(struct u_vbuf *mgr, struct translate_key *key,
       assert((ib->buffer || ib->user_buffer) && ib->index_size);
 
       /* Create and map the output buffer. */
-      u_upload_alloc(mgr->uploader, 0,
+      u_upload_alloc(mgr->pipe->stream_uploader, 0,
                      key->output_stride * num_indices, 4,
                      &out_offset, &out_buffer,
                      (void**)&out_map);
@@ -486,7 +480,7 @@ u_vbuf_translate_buffers(struct u_vbuf *mgr, struct translate_key *key,
       }
    } else {
       /* Create and map the output buffer. */
-      u_upload_alloc(mgr->uploader,
+      u_upload_alloc(mgr->pipe->stream_uploader,
                      key->output_stride * start_vertex,
                      key->output_stride * num_vertices, 4,
                      &out_offset, &out_buffer,
@@ -990,7 +984,7 @@ u_vbuf_upload_buffers(struct u_vbuf *mgr,
       real_vb = &mgr->real_vertex_buffer[i];
       ptr = mgr->vertex_buffer[i].user_buffer;
 
-      u_upload_data(mgr->uploader, start, end - start, 4, ptr + start,
+      u_upload_data(mgr->pipe->stream_uploader, start, end - start, 4, ptr + start,
                     &real_vb->buffer_offset, &real_vb->buffer);
       if (!real_vb->buffer)
          return PIPE_ERROR_OUT_OF_MEMORY;
@@ -1295,7 +1289,7 @@ void u_vbuf_draw_vbo(struct u_vbuf *mgr, const struct pipe_draw_info *info)
    }
    */
 
-   u_upload_unmap(mgr->uploader);
+   u_upload_unmap(pipe->stream_uploader);
    u_vbuf_set_driver_vertex_buffers(mgr);
 
    pipe->draw_vbo(pipe, &new_info);