Module: Mesa Branch: master Commit: c5390b2ef78df6b56c75d5971551549efa3688e4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5390b2ef78df6b56c75d5971551549efa3688e4
Author: Mike Blumenkrantz <[email protected]> Date: Wed Oct 28 13:18:55 2020 -0400 zink: refactor resource_sync_writes_from_batch_usage() to manage batch id internally this is always used the same way, so we can simplify the code a bit for future use Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9626> --- src/gallium/drivers/zink/zink_resource.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 4f3b379018e..c26dbed939d 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -55,8 +55,11 @@ debug_describe_zink_resource_object(char *buf, const struct zink_resource_object static void -resource_sync_writes_from_batch_usage(struct zink_context *ctx, uint32_t batch_uses) +resource_sync_writes_from_batch_usage(struct zink_context *ctx, struct zink_resource *res) { + uint32_t batch_uses = zink_get_resource_usage(res); + batch_uses &= ~(ZINK_RESOURCE_ACCESS_READ << ZINK_COMPUTE_BATCH_ID); + uint32_t write_mask = 0; for (int i = 0; i < ZINK_NUM_GFX_BATCHES + ZINK_COMPUTE_BATCH_COUNT; i++) write_mask |= ZINK_RESOURCE_ACCESS_WRITE << i; @@ -680,7 +683,7 @@ zink_transfer_map(struct pipe_context *pctx, zink_wait_on_batch(ctx, ZINK_COMPUTE_BATCH_ID); batch_uses &= ~(ZINK_RESOURCE_ACCESS_READ << ZINK_COMPUTE_BATCH_ID); if (usage & PIPE_MAP_READ && batch_uses >= ZINK_RESOURCE_ACCESS_WRITE) - resource_sync_writes_from_batch_usage(ctx, batch_uses); + resource_sync_writes_from_batch_usage(ctx, res); else if (usage & PIPE_MAP_WRITE && batch_uses) { /* need to wait for all rendering to finish * TODO: optimize/fix this to be much less obtrusive @@ -782,7 +785,7 @@ zink_transfer_map(struct pipe_context *pctx, batch_uses &= ~(ZINK_RESOURCE_ACCESS_READ << ZINK_COMPUTE_BATCH_ID); if (batch_uses >= ZINK_RESOURCE_ACCESS_WRITE) { if (usage & PIPE_MAP_READ) - resource_sync_writes_from_batch_usage(ctx, batch_uses); + resource_sync_writes_from_batch_usage(ctx, res); else zink_fence_wait(pctx); } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
