X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fr300%2Fr300_render_translate.c;h=caeeec059090aa26a46f737a2bc0e59677539a88;hb=5f7faff61bc3ebe80f262fac6f58225d8005631b;hp=f8c7558f4b4ef8795b8c4f810ee305b0a2bb147b;hpb=b922a0ce12916a91cfc3e56714913fcf63279ff2;p=mesa.git diff --git a/src/gallium/drivers/r300/r300_render_translate.c b/src/gallium/drivers/r300/r300_render_translate.c index f8c7558f4b4..caeeec05909 100644 --- a/src/gallium/drivers/r300/r300_render_translate.c +++ b/src/gallium/drivers/r300/r300_render_translate.c @@ -26,56 +26,52 @@ void r300_translate_index_buffer(struct r300_context *r300, - struct pipe_resource **index_buffer, + struct pipe_index_buffer *ib, + struct pipe_resource **out_buffer, unsigned *index_size, unsigned index_offset, unsigned *start, unsigned count) { - struct pipe_resource *out_buffer = NULL; unsigned out_offset; void *ptr; - boolean flushed; switch (*index_size) { case 1: - u_upload_alloc(r300->vbuf_mgr->uploader, 0, count * 2, - &out_offset, &out_buffer, &flushed, &ptr); + *out_buffer = NULL; + u_upload_alloc(r300->uploader, 0, count * 2, + &out_offset, out_buffer, &ptr); util_shorten_ubyte_elts_to_userptr( - &r300->context, *index_buffer, index_offset, + &r300->context, ib, index_offset, *start, count, ptr); - *index_buffer = NULL; - pipe_resource_reference(index_buffer, out_buffer); *index_size = 2; *start = out_offset / 2; break; case 2: if (index_offset) { - u_upload_alloc(r300->vbuf_mgr->uploader, 0, count * 2, - &out_offset, &out_buffer, &flushed, &ptr); + *out_buffer = NULL; + u_upload_alloc(r300->uploader, 0, count * 2, + &out_offset, out_buffer, &ptr); - util_rebuild_ushort_elts_to_userptr(&r300->context, *index_buffer, + util_rebuild_ushort_elts_to_userptr(&r300->context, ib, index_offset, *start, count, ptr); - *index_buffer = NULL; - pipe_resource_reference(index_buffer, out_buffer); *start = out_offset / 2; } break; case 4: if (index_offset) { - u_upload_alloc(r300->vbuf_mgr->uploader, 0, count * 4, - &out_offset, &out_buffer, &flushed, &ptr); + *out_buffer = NULL; + u_upload_alloc(r300->uploader, 0, count * 4, + &out_offset, out_buffer, &ptr); - util_rebuild_uint_elts_to_userptr(&r300->context, *index_buffer, + util_rebuild_uint_elts_to_userptr(&r300->context, ib, index_offset, *start, count, ptr); - *index_buffer = NULL; - pipe_resource_reference(index_buffer, out_buffer); *start = out_offset / 4; } break;