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

Ge: Restore saved context when ending a list #14034

Merged
merged 2 commits into from
Jan 31, 2021

Conversation

unknownbrackets
Copy link
Collaborator

I think this is the cause of #13346, based on logging for when the save/restore happens.

Basically, if you enqueue with a context address, that's where to save context before starting your list, and restore context after your list completes. It means that you don't intend any state modifications by your list to be permanent. But we were running other lists before eventually restoring after the interrupt processing finished.

This seems slightly risky for v1.11.0 and could use more testing on more games...

-[Unknown]

Explicitly trigger memchecks on readback.
Otherwise another list queued by a Head push could use the wrong context
data.  See hrydgard#13346.
@hrydgard hrydgard added the GE emulation Backend-independent GPU issues label Jan 31, 2021
@hrydgard hrydgard added this to the v1.11.0 milestone Jan 31, 2021
@hrydgard
Copy link
Owner

Wow, very nice find!

That's indeed a bit scary for a late merge, but maybe worth it!

Before merging this, I'm gonna do quite a bit of testing of my library. Then, we'll let it bubble for a week, asking people on Discord to test stuff too - and I think we should hopefully be fine for a release next Sunday, or if it doesn't feel right, the weekend after...

@hrydgard hrydgard merged commit 95a14be into hrydgard:master Jan 31, 2021
@hrydgard
Copy link
Owner

No problems as far as I can tell.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GE emulation Backend-independent GPU issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants