-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(11.1-beta2) Compositor not always releasing DXGI mutex in Image interop #15758
Comments
Could you bisect a bit further? |
This is what I got
Edit: Adding this seems to make the deadlock less likely to happen (though it still can): |
That particular PR has changed the way composition batches are being scheduled on the UI thread. Are you sure that you aren't trying to call |
I. e. the input starvation logic can enforce all input to be handled before scheduled render pass. So if you aren't awaiting the latest task it would indeed result in a deadlock once that kicks in. |
Ok, I've gotten it fixed by ensuring the Task completed before attempting to render again. I used the GpuInterop sample as reference for this and on the surface, the only place the |
Describe the bug
Using the GPU interop composition stuff, attempting to update a shared surface via
_surface.UpdateWithKeyMutexAsync()
will sometimes not release the mutex leading to deadlock. TheTask
that fires for completion returns sucessfully but the mutex value is never reset thus my call to AquireSync deadlocks.This issue only occurs in beta2, beta 1 works as expected.
To Reproduce
Repro project: It is just a simple draw a rectangle with the mouse. Make quick movements with the mouse and the app will freeze at the AcquireSync call on the app side. If you switch back to beta1, it will all work fine
Demo.zip
Expected behavior
No response
Avalonia version
11.1-beta2
OS
Windows
Additional context
No response
The text was updated successfully, but these errors were encountered: