On Thu May 7 21:08:00 2026 +0000, Charlotte Pabst wrote:
Seems like the current behavior is correct, I added a test for it. It doesn't look like the code is correct now, though: in test "SignalEventOnFinalResourceRelease with duplicated event" event `event3` is passed to `SignalEventOnFinalResourceRelease()`, the duplicated and closed. Later the same event that has been closed is set in `d3d12_sync_object_async_release_Invoke()`, which is illegal I suppose. I can only imagine it works by chance because whatever was in the handle table corresponding to `event3` hasn't been overwritten yet. The robust implementation should instead store a duplicate of the handle in `final_release_event` and use that to signal in `d3d12_sync_object_async_release_Invoke()`. Or am I missing something?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9777#note_139409