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

GSdx-ogl: Drop AMD's SSO workarounds #2696

Closed
wants to merge 3 commits into from
Closed

GSdx-ogl: Drop AMD's SSO workarounds #2696

wants to merge 3 commits into from

Conversation

mirh
Copy link

@mirh mirh commented Nov 19, 2018

Details on the otherwise random-looking values I used at #1552 (comment)

I have some reserve on whether it's me to be stupid, Wx, or both, considering the time I needed to find the right code (for as much ugly) that worked in every case.

And yes, @lightningterror, amd_legacy_buggy_driver is just there waiting for your June <~15.11 hack to land ^^

*/
if (v < 25.20f || (v < 25.21f && atoi(pEnd + 1) < 1407))
amd_buggy_driver = true;
}

This comment was marked as spam.

This comment was marked as spam.

#endif
/*if (v < 15.3f)
amd_legacy_buggy_driver = true;
*/

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

@lightningterror lightningterror changed the title Drop AMD's SSO workarounds GSdx-ogl: Drop AMD's SSO workarounds Nov 20, 2018
#ifdef _WIN32
GLfloat v = _strtof_l(strrchr((char*)s, ' '), &pEnd, _create_locale(LC_NUMERIC, "C"));
#else
GLfloat v = strtof_l(strrchr((char*)s, ' '), &pEnd, newlocale(LC_NUMERIC, "C", NULL));

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

// Unfortuntately after testing for at least these 2 cases we check, I found that had same
// versions across the buggy and fixed "branch". Threfore look for the kernel driver build.
//
// Screw Wx screwings (it's nice we have decimal seprator localized... but dlls do not)

This comment was marked as spam.

This comment was marked as spam.

Also account for latest release bug fixes (see PCSX2#1552 for details on the used values)
Legacy_driver variable was left there, because technically speaking that'd be supposed to be yet another case to remotely care
@lightningterror
Copy link
Contributor

I don't see any harm in leaving the workaround there for a bit longer. If we remove it for 1.6 release and AMD breaks the driver again then we'll end up with a not working stable release.

@lightningterror lightningterror added this to the Release 1.8 milestone Nov 26, 2018
Forsaken float method for int, generic C, one (thanks @turtleli)
@mirh
Copy link
Author

mirh commented Jan 4, 2019

Here we are with another spin (RIP "first decimal digit" check)
I moved the whole thing to a separate function so that it could be super duper easily reused in the future, even for intel and nvidia.

I'm a bit skeptical about sanitization of the arrays (e.g. what happens when GL_version is missing, or hasn't spaces?) so there's that.
I hope comments are as explicable as I spent time wording and rewording them.

// Coincidentally the same position is also where Intel and Nvidia put their only version id
bool check_driver_version(const unsigned char *s, std::string v) {
std::stringstream iss(v);
std::vector<int> fixed_version((std::istream_iterator<int>(iss)), std::istream_iterator<int>());

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

@danilaml
Copy link

danilaml commented Jun 9, 2019

Needs rebase.

@lightningterror
Copy link
Contributor

Status?

@mirh
Copy link
Author

mirh commented May 13, 2020

I'm sure somebody wittier than me will be able to handle it.

@mirh mirh closed this May 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants