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

Updated sys_net to use WSAPoll on win32 to fix connection issues #7064

Merged
merged 1 commit into from
Dec 13, 2019

Conversation

Jayveer
Copy link
Contributor

@Jayveer Jayveer commented Dec 4, 2019

that are shown in Metal Gear Online. Also aligns with implementations on non win32 platforms.

in Metal Gear Online. Also aligns with implementations on non win32
platforms
@AniLeo AniLeo added the Network label Dec 4, 2019
@AniLeo AniLeo requested a review from Nekotekina December 4, 2019 21:13
@Nekotekina
Copy link
Member

WSAPoll is known for its flaw of not reporting failed connection, as I recall. I'd like to see more information regarding the bug.

@Jayveer
Copy link
Contributor Author

Jayveer commented Dec 5, 2019

Ok fair enough I didn't know WSAPoll had that problem. The bug is in the select function, it appears to be saying the data needs to be read even after it was already read. Because of this it looks like when recv is called after that bad return there is an error. What this looks like in the game is that sometimes the call makes it through and you get a successful response whilst sometimes you will get a connection error from the server (more often an error than success).

@Nekotekina Nekotekina merged commit 364ba95 into RPCS3:master Dec 13, 2019
@Kravickas
Copy link
Contributor

WRC 5 is broken after this PR. Ingame to Nothing.
WRC 5 ok.gz
WRC 5 broken.gz

@Jayveer
Copy link
Contributor Author

Jayveer commented Dec 14, 2019

it looks like the game tries to connect to localhost and fails, then we're stuck in a waiting state, wsapoll is setting the revent to 0 in this instance rather than the expected pollout which is ultimately the problem. Will see what can be done about this.

@CrabLugo
Copy link

Uncharted [BCUS98103] hangs while loading save using "disconnected", "connecting" and "obtaining IP" (second later than previous 2), works as intented only with "IP obtained", before worked with any of them.

@Jayveer
Copy link
Contributor Author

Jayveer commented Dec 16, 2019

It looks to be the issue with wsapoll that was mentioned. @Nekotekina is it possible to revert this commit as it's regressed some games. I will look into the original bnet_select issue in isolation. Sorry for the trouble.

@CrabLugo
Copy link

From further testing, looks like this PR regressed performance in uncharted in the same time. from 24 fps to 17-18. Changing preferred spu threads from auto to 2/3 seems to somehow help to avoid this network issue, but performance is still same bad.

@Nekotekina
Copy link
Member

It's always possible to revert, as last resort. I'll think what can be done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants