20 Nov
2025
20 Nov
'25
5:37 p.m.
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 This is visible in several d2d/d3d tests timing out since that change. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9544