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

Reply via email to