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

Improve kernel IPC implementation #550

Merged
merged 16 commits into from
Jan 18, 2019
Merged

Improve kernel IPC implementation #550

merged 16 commits into from
Jan 18, 2019

Conversation

gdkchan
Copy link
Member

@gdkchan gdkchan commented Dec 26, 2018

This attempts to implement it the right way. A bunch of things are still missing, and it also needs to be tested properly. Ideally, we should update the current HLE service implementation to work with the new IPC system, but that's rather complicated and I prefer to save it for later. For now I introduced a constant that can be toggled to use the old or new IPC system (by default it uses the old one).

@gdkchan gdkchan changed the title [WIP] Improve kernel IPC implementation Improve kernel IPC implementation Dec 31, 2018
@gdkchan
Copy link
Member Author

gdkchan commented Dec 31, 2018

This should be ready for review.
One thing that is worth mentioning is that I had to add some basic ref counting, because even though .net has a garbage collector and we don't need to worry about object destruction, it's still necessary to release kernel resources (like decrementing counters for limitable resources etc). It's kind of a pain so I tried to add it only where it is really required.

Copy link
Contributor

@marysaka marysaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@gdkchan gdkchan merged commit 22bacc6 into master Jan 18, 2019
@gdkchan gdkchan deleted the port branch January 25, 2019 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
horizon Related to Ryujinx.HLE
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants