summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2022-08-02 08:11:29 -0400
committerDylan Baker <dylan.c.baker@intel.com>2022-08-10 14:16:10 -0700
commit5029afc7501cf1cb08ca87506179a929b5163b7c (patch)
tree67c44a127dff7c7b4217d1e67c4f4d5f0a8043e6
parentbbcb6f8e06900cd090b2335f6d2f19357cb47c37 (diff)
zink: don't flag lazy push constant set dirty on batch change
this has its own flag cc: mesa-stable Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17866> (cherry picked from commit 7450990558965a38513ce94fbed9a593f8403a98)
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/drivers/zink/zink_descriptors_lazy.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/.pick_status.json b/.pick_status.json
index ad1c946b360..d8103b58be4 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -3478,7 +3478,7 @@
"description": "zink: don't flag lazy push constant set dirty on batch change",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"main_sha": null,
"because_sha": null
},
diff --git a/src/gallium/drivers/zink/zink_descriptors_lazy.c b/src/gallium/drivers/zink/zink_descriptors_lazy.c
index e039ef28982..5243464e858 100644
--- a/src/gallium/drivers/zink/zink_descriptors_lazy.c
+++ b/src/gallium/drivers/zink/zink_descriptors_lazy.c
@@ -562,7 +562,7 @@ zink_descriptors_update_lazy(struct zink_context *ctx, bool is_compute)
bool batch_changed = !bdd->pg[is_compute];
if (batch_changed) {
/* update all sets and bind null sets */
- dd_lazy(ctx)->state_changed[is_compute] = pg->dd->binding_usage;
+ dd_lazy(ctx)->state_changed[is_compute] = pg->dd->binding_usage & BITFIELD_MASK(ZINK_DESCRIPTOR_TYPES);
dd_lazy(ctx)->push_state_changed[is_compute] = !!pg->dd->push_usage;
}
@@ -629,7 +629,7 @@ zink_descriptors_update_lazy(struct zink_context *ctx, bool is_compute)
bdd->pg[is_compute] = pg;
ctx->dd->pg[is_compute] = pg;
bdd->compat_id[is_compute] = pg->compat_id;
- dd_lazy(ctx)->state_changed[is_compute] = false;
+ dd_lazy(ctx)->state_changed[is_compute] = 0;
}
void