Skip to content
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

Allow Surface Flinger frame enqueue after process has exited #3733

Merged
merged 1 commit into from
Oct 2, 2022

Conversation

gdkchan
Copy link
Member

@gdkchan gdkchan commented Oct 1, 2022

Because surface flinger is disposed after the guest processes, it is possible it will try to enqueue a pending frame when the process has already exited. This will cause an exception to be thrown on tne EnqueueFrameThreadSafe method. This change makes it not throw and instead return a bool indicatiing if the frame was added to the queue or not. Surface Flinger can then deal with this and release the frame immediately.

This fixes an exception that could be thrown in some rare cases while ending emulation.

@gdkchan gdkchan added fix Fix something service:surface-flinger Related to the android module (Ryujinx.HLE.HOS.Services.SurfaceFlinger) labels Oct 1, 2022
@gdkchan gdkchan requested a review from marysaka October 1, 2022 18:44
@marysaka marysaka requested a review from AcK77 October 2, 2022 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix Fix something service:surface-flinger Related to the android module (Ryujinx.HLE.HOS.Services.SurfaceFlinger)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants