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:
Mike Blumenkrantz
2023-01-24 15:52:58 -05:00
committed by Marge Bot
parent 1a29f3dfdb
commit 87a9018ff9
2 changed files with 4 additions and 2 deletions

View File

@@ -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 */

View File

@@ -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};