Module: Mesa
Branch: main
Commit: bec60876994b3b85e674085b6e22e40abf010939
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bec60876994b3b85e674085b6e22e40abf010939

Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Feb 10 15:34:45 2023 -0500

zink: move db_bound to batch descriptor data

this is where descriptor stuff goes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21246>

---

 src/gallium/drivers/zink/zink_batch.c       | 2 +-
 src/gallium/drivers/zink/zink_descriptors.c | 4 ++--
 src/gallium/drivers/zink/zink_types.h       | 3 ++-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_batch.c 
b/src/gallium/drivers/zink/zink_batch.c
index 98fb7d6d975..5311b005f5b 100644
--- a/src/gallium/drivers/zink/zink_batch.c
+++ b/src/gallium/drivers/zink/zink_batch.c
@@ -424,7 +424,7 @@ zink_batch_bind_db(struct zink_context *ctx)
       count++;
    }
    VKSCR(CmdBindDescriptorBuffersEXT)(batch->state->cmdbuf, count, infos);
-   batch->state->db_bound = true;
+   batch->state->dd.db_bound = true;
 }
 
 /* called on context creation and after flushing an old batch */
diff --git a/src/gallium/drivers/zink/zink_descriptors.c 
b/src/gallium/drivers/zink/zink_descriptors.c
index aad10cbfd23..65e78d5fd06 100644
--- a/src/gallium/drivers/zink/zink_descriptors.c
+++ b/src/gallium/drivers/zink/zink_descriptors.c
@@ -1278,7 +1278,7 @@ zink_descriptors_update(struct zink_context *ctx, bool 
is_compute)
     */
    uint8_t bind_sets = bs->dd.pg[is_compute] && bs->dd.compat_id[is_compute] 
== pg->compat_id ? 0 : pg->dd.binding_usage;
 
-   if (zink_descriptor_mode == ZINK_DESCRIPTOR_MODE_DB && !bs->db_bound)
+   if (zink_descriptor_mode == ZINK_DESCRIPTOR_MODE_DB && !bs->dd.db_bound)
       zink_batch_bind_db(ctx);
 
    if (pg->dd.push_usage && (ctx->dd.push_state_changed[is_compute] || 
bind_sets)) {
@@ -1449,7 +1449,7 @@ zink_batch_descriptor_reset(struct zink_screen *screen, 
struct zink_batch_state
 {
    if (zink_descriptor_mode == ZINK_DESCRIPTOR_MODE_DB) {
       bs->dd.db_offset = 0;
-      bs->db_bound = false;
+      bs->dd.db_bound = false;
    } else {
       for (unsigned i = 0; i < ZINK_DESCRIPTOR_BASE_TYPES; i++) {
          struct zink_descriptor_pool_multi **mpools = bs->dd.pools[i].data;
diff --git a/src/gallium/drivers/zink/zink_types.h 
b/src/gallium/drivers/zink/zink_types.h
index 19c8154a6d2..0a2a96ee84f 100644
--- a/src/gallium/drivers/zink/zink_types.h
+++ b/src/gallium/drivers/zink/zink_types.h
@@ -469,6 +469,8 @@ struct zink_descriptor_pool_multi {
 struct zink_batch_descriptor_data {
    /* pools have fbfetch initialized */
    bool has_fbfetch;
+   /* are descriptor buffers bound */
+   bool db_bound;
    /* real size of 'pools' */
    unsigned pool_size[ZINK_DESCRIPTOR_BASE_TYPES];
    /* this array is sized based on the max zink_descriptor_pool_key::id used 
by the batch; members may be NULL */
@@ -592,7 +594,6 @@ struct zink_batch_state {
 
    bool is_device_lost;
    bool has_barriers;
-   bool db_bound;
 };
 
 static inline struct zink_batch_state *

Reply via email to