zink: don't use set_foreach_remove with dmabuf_exports
foreach_remove cannot be used if the set ever has members deleted,
and this set may have deleted members
Fixes: 7b7a581a52 ("zink: prune dmabuf export tracking when adding resource binds")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28464>
This commit is contained in:
committed by
Marge Bot
parent
3114917986
commit
c2e0c2c67f
@@ -758,7 +758,7 @@ submit_queue(void *data, void *gdata, int thread_index)
|
||||
|
||||
unsigned i = 0;
|
||||
VkSemaphore *sem = bs->signal_semaphores.data;
|
||||
set_foreach_remove(&bs->dmabuf_exports, entry) {
|
||||
set_foreach(&bs->dmabuf_exports, entry) {
|
||||
struct zink_resource *res = (void*)entry->key;
|
||||
for (; res; res = zink_resource(res->base.b.next))
|
||||
zink_screen_import_dmabuf_semaphore(screen, res, sem[i++]);
|
||||
@@ -766,6 +766,7 @@ submit_queue(void *data, void *gdata, int thread_index)
|
||||
struct pipe_resource *pres = (void*)entry->key;
|
||||
pipe_resource_reference(&pres, NULL);
|
||||
}
|
||||
_mesa_set_clear(&bs->dmabuf_exports, NULL);
|
||||
|
||||
bs->usage.submit_count++;
|
||||
end:
|
||||
|
||||
Reference in New Issue
Block a user