Alexandre Julliard pushed to branch master at wine / wine
Commits: a1cf6a68 by Rémi Bernon at 2025-11-20T12:37:25-06:00 win32u: Release internal OpenGL drawables outside of the user lock.
Sometimes windows get destroyed while wined3d still has some internal drawables allocated, and the cached DCs gets removed and destroyed as soon as the window itself is, causing free_dce to be called with the user lock held already.
Then opengl_drawable_release grabing the surfaces lock with the user lock held causes deadlocks with other threads creating or presenting surfaces which need to take the locks in the reverse order.
Fixes: a085746bbe3594e4ea01ea578823383e6447b6b6
- - - - -
6 changed files:
- dlls/win32u/class.c - dlls/win32u/dce.c - dlls/win32u/ntuser_private.h - dlls/win32u/opengl.c - dlls/win32u/window.c - include/wine/opengl_driver.h
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/commit/a1cf6a683854e96ad00d147d2983ed4...