gallium/u_threaded: implement pipelined partial buffer uploads using CPU storage

This removes resource_copy_region for BufferSubData. Drivers have to opt in
to use this.

See the comment in the header file.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13399>
This commit is contained in:
Marek Olšák
2021-10-17 17:16:09 -04:00
committed by Marge Bot
parent cc2f3a0168
commit 3df9d8ed80
9 changed files with 138 additions and 15 deletions

View File

@@ -356,7 +356,7 @@ crocus_alloc_resource(struct pipe_screen *pscreen,
res->base.b.screen = pscreen;
res->orig_screen = crocus_pscreen_ref(pscreen);
pipe_reference_init(&res->base.b.reference, 1);
threaded_resource_init(&res->base.b);
threaded_resource_init(&res->base.b, false, 0);
if (templ->target == PIPE_BUFFER)
util_range_init(&res->valid_buffer_range);