gallium/u_threaded: late alloc cpu_storage
Instead of allocating cpu_storage in threaded_resource_init, defer the allocation to first use (in tc_buffer_map). This avoids needless memory allocation if tc_buffer_disable_cpu_storage is called before tc_buffer_map. map_buffer_alignment is stored and serves as a "can cpu_storage be used" flag. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15074>
This commit is contained in:
@@ -297,7 +297,7 @@ convert_planar_resource(struct d3d12_resource *res)
|
||||
*plane_res = *res;
|
||||
d3d12_bo_reference(plane_res->bo);
|
||||
pipe_reference_init(&plane_res->base.b.reference, 1);
|
||||
threaded_resource_init(&plane_res->base.b, false, 0);
|
||||
threaded_resource_init(&plane_res->base.b, false);
|
||||
}
|
||||
|
||||
plane_res->base.b.next = next;
|
||||
@@ -357,7 +357,7 @@ d3d12_resource_create(struct pipe_screen *pscreen,
|
||||
init_valid_range(res);
|
||||
threaded_resource_init(&res->base.b,
|
||||
templ->usage == PIPE_USAGE_DEFAULT &&
|
||||
templ->target == PIPE_BUFFER, 64);
|
||||
templ->target == PIPE_BUFFER);
|
||||
|
||||
memset(&res->bind_counts, 0, sizeof(d3d12_resource::bind_counts));
|
||||
|
||||
@@ -556,7 +556,7 @@ d3d12_resource_from_handle(struct pipe_screen *pscreen,
|
||||
}
|
||||
init_valid_range(res);
|
||||
|
||||
threaded_resource_init(&res->base.b, false, 0);
|
||||
threaded_resource_init(&res->base.b, false);
|
||||
convert_planar_resource(res);
|
||||
|
||||
return &res->base.b;
|
||||
|
Reference in New Issue
Block a user