zink: reorder commands more aggressively
by starting resources in the unordered state in a given batch, they gain more opportunities to be promoted to the barrier cmdbuf and avoid breaking renderpasses Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20890>
This commit is contained in:

committed by
Marge Bot

parent
1a29f3dfdb
commit
87a9018ff9
@@ -29,8 +29,8 @@ reset_obj(struct zink_screen *screen, struct zink_batch_state *bs, struct zink_r
|
||||
/* if no batch usage exists after removing the usage from 'bs', this resource is considered fully idle */
|
||||
if (!zink_resource_object_usage_unset(obj, bs)) {
|
||||
/* the resource is idle, so reset all access/reordering info */
|
||||
obj->unordered_read = false;
|
||||
obj->unordered_write = false;
|
||||
obj->unordered_read = true;
|
||||
obj->unordered_write = true;
|
||||
obj->access = 0;
|
||||
obj->access_stage = 0;
|
||||
/* also prune dead view objects */
|
||||
|
@@ -597,6 +597,8 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
|
||||
return NULL;
|
||||
simple_mtx_init(&obj->view_lock, mtx_plain);
|
||||
util_dynarray_init(&obj->views, NULL);
|
||||
obj->unordered_read = true;
|
||||
obj->unordered_write = true;
|
||||
obj->last_dt_idx = obj->dt_idx = UINT32_MAX; //TODO: unionize
|
||||
|
||||
VkMemoryRequirements reqs = {0};
|
||||
|
Reference in New Issue
Block a user