https://bugs.winehq.org/show_bug.cgi?id=43773
Tobias Klausmann tobias.johannes.klausmann@mni.thm.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tobias.johannes.klausmann@m | |ni.thm.de
--- Comment #4 from Tobias Klausmann tobias.johannes.klausmann@mni.thm.de --- Origin seems to suffer the same fate: ... 0009:err:d3d:context_reacquire Acquired context 0x14522818 instead of 0x141b2198. 0009:err:d3d:context_reacquire Acquired context 0x14522818 instead of 0x141b2198. ...
Having the context(s) within the device seems a good idea imho, where the right context could be picked (made active?). Did the mentioned PoC work out?
Anyway, the below dirty hack seems to help a bit with the current situation:
@@ -4311,8 +4311,11 @@ struct wined3d_context *context_reacquire(const struct wined3d_device *device, }
acquired_context = context_acquire(device, NULL, 0); - if (acquired_context != context) + if (acquired_context != context) { ERR("Acquired context %p instead of %p.\n", acquired_context, context); + context_release(context); + return NULL; + } return acquired_context; }