r600g: inline r600_upload_index_buffer
authorMarek Olšák <maraeo@gmail.com>
Mon, 2 Apr 2012 01:01:01 +0000 (03:01 +0200)
committerMarek Olšák <maraeo@gmail.com>
Wed, 4 Apr 2012 11:09:47 +0000 (13:09 +0200)
src/gallium/drivers/r600/r600_buffer.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_state_common.c

index b165c31..4708d01 100644 (file)
@@ -257,12 +257,3 @@ struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen,
        rbuffer->buf = NULL;
        return &rbuffer->b.b.b;
 }
-
-void r600_upload_index_buffer(struct r600_context *rctx,
-                             struct pipe_index_buffer *ib, unsigned count)
-{
-       struct r600_resource *rbuffer = r600_resource(ib->buffer);
-
-       u_upload_data(rctx->vbuf_mgr->uploader, 0, count * ib->index_size,
-                     rbuffer->b.user_ptr, &ib->offset, &ib->buffer);
-}
index 1f4368d..a84f9cc 100644 (file)
@@ -398,9 +398,6 @@ struct pipe_resource *r600_buffer_create(struct pipe_screen *screen,
 struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen,
                                              void *ptr, unsigned bytes,
                                              unsigned bind);
-void r600_upload_index_buffer(struct r600_context *rctx,
-                             struct pipe_index_buffer *ib, unsigned count);
-
 
 /* r600_pipe.c */
 void r600_flush(struct pipe_context *ctx, struct pipe_fence_handle **fence,
index 1738d30..59336cf 100644 (file)
@@ -744,6 +744,7 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *dinfo)
        struct r600_atom *state = NULL, *next_state = NULL;
        struct radeon_winsys_cs *cs = rctx->cs;
        uint64_t va;
+       uint8_t *ptr;
 
        if ((!info.count && (info.indexed || !info.count_from_stream_output)) ||
            (info.indexed && !rctx->vbuf_mgr->index_buffer.buffer) ||
@@ -778,8 +779,10 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *dinfo)
                /* Translate or upload, if needed. */
                r600_translate_index_buffer(rctx, &ib, info.count);
 
-               if (u_vbuf_resource(ib.buffer)->user_ptr) {
-                       r600_upload_index_buffer(rctx, &ib, info.count);
+               ptr = u_vbuf_resource(ib.buffer)->user_ptr;
+               if (ptr) {
+                       u_upload_data(rctx->vbuf_mgr->uploader, 0, info.count * ib.index_size,
+                                     ptr, &ib.offset, &ib.buffer);
                }
        } else {
                info.index_bias = info.start;