mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
nvk: Don't re-initialize the descriptor writer if the set matches
The logic here before was wrong. In the case where the set is the same, it would avoid the flush but then re-initialize anyway, loosing the dirty information and causing us not to actually flush out all the descriptors. Fixes:1f0fda22f7("nvk: Flush descriptor set maps") (cherry picked from commit2f6b3b6b91) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
This commit is contained in:
parent
9aeac1e0a7
commit
182877f3c8
2 changed files with 9 additions and 2 deletions
|
|
@ -114,7 +114,7 @@
|
|||
"description": "nvk: Don't re-initialize the descriptor writer if the set matches",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "1f0fda22f7fe6bec8a001c89b967888fc0399868",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -94,7 +94,14 @@ nvk_descriptor_writer_next_set(struct nvk_descriptor_writer *w,
|
|||
{
|
||||
const struct nvk_physical_device *pdev = w->pdev;
|
||||
|
||||
if (w->set != NULL && w->set != set)
|
||||
/* If we're writing to the same set, keep using the original writer as-is
|
||||
* so we don't do unnecessary extra flushing in the case where the client
|
||||
* has a lot of writes to the same set back-to-back.
|
||||
*/
|
||||
if (w->set == set)
|
||||
return;
|
||||
|
||||
if (w->set != NULL)
|
||||
nvk_descriptor_writer_finish(w);
|
||||
|
||||
nvk_descriptor_writer_init_set(pdev, w, set);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue