Permalink
Browse files

gsdx-ogl: black list 2016/2017.1 AMD driver

Based on AMD feedback, I'm might blacklist all 2017 drivers too.
1 parent da1bb43 commit 26993380b16487649c2ae5f81741e7918ad1604c @gregory38 gregory38 committed Feb 17, 2017
Showing with 6 additions and 8 deletions.
  1. +6 โˆ’8 plugins/GSdx/GLLoader.cpp
@@ -261,8 +261,10 @@ namespace GLLoader {
if (strstr(vendor, "ATI") || strstr(vendor, "Advanced Micro Devices"))
fglrx_buggy_driver = true;
if (fglrx_buggy_driver && (
- strstr((const char*)&s[v], " 15.") // blacklist all 2015 drivers
- || strstr((const char*)&s[v], " 16.1"))) // And start of 2016
+ strstr((const char*)&s[v], " 15.") || // blacklist all 2015 drivers
+ strstr((const char*)&s[v], " 16.") || // And all 2016 drivers. Good jobs AMD !
+ strstr((const char*)&s[v], " 17.1") // In doubt take also first 2017 driver
+ ))
legacy_fglrx_buggy_driver = true;
if (strstr(vendor, "NVIDIA Corporation"))
@@ -357,18 +359,14 @@ namespace GLLoader {
status &= status_and_override(found_GL_ARB_texture_barrier, "GL_ARB_texture_barrier");
status &= status_and_override(found_GL_ARB_get_texture_sub_image, "GL_ARB_get_texture_sub_image");
-#ifdef _WIN32
- if (status) {
- if (fglrx_buggy_driver) {
- fprintf(stderr, "The OpenGL hardware renderer is slow on AMD GPUs due to an inefficient driver. Check out the links below for further information.\n"
+ if (fglrx_buggy_driver) {
+ fprintf(stderr, "The OpenGL hardware renderer is slow on AMD GPUs due to an inefficient driver. Check out the links below for further information.\n"
"https://community.amd.com/message/2756964\n"
"https://community.amd.com/thread/205702\n"
"Note: Due to an AMD OpenGL driver issue, setting Blending Unit Accuracy to \"None\" can cause an application or system crash.\n"
"Keep Blending Unit Accuracy set to at least the default \"Basic\" level.\n"
"AMD has a fix for the issue that will be released in the coming months. The issue does not affect AMD GPUs on legacy drivers.\n");
- }
}
-#endif
if (!found_GL_ARB_viewport_array) {
fprintf(stderr, "GL_ARB_viewport_array: not supported ! function pointer will be replaced\n");

18 comments on commit 2699338

@Passingby1

With all due respect, at this point you might as well set a "The Way Is Meant To Be Played" logo at the start of PCSX2, and maybe enroll in the Gameworks program.

@okamiterasu
okamiterasu commented on 2699338 Feb 17, 2017 edited

It's not his fault AMD doesn't work properly

@i30817
Contributor
i30817 commented on 2699338 Feb 17, 2017

If you want to use opengl on amd, use it on linux with the free mesa driver.

@gregory38
Contributor

What can I do if the driver is buggy as hell? I created a test case and bug report something like 4-5 years ago. AMD decided to move its ass last year (start of 2016). They took 6 months to release a fix that BSOD. So we created a new test case, wait 6 months. And guess what initial issue is back. So AMD GL driver sucks. Just open your eyes (follow the link)

@FlatOutPS2
Member
FlatOutPS2 commented on 2699338 Feb 17, 2017 edited

What can I do if the driver is buggy as hell?

Take a job at AMD as OpenGL driver developer, fix all the bugs, pester your superiors into releasing the fixes sooner, celebrate your succes, then quit.

@gregory38
Contributor

Lol. I'm not sure they can afford to double their team.

For the record, I did a fair chunk of the SSO implementation on Mesa. I didn't have an Nvidia GPU back then, so DIY power.

@Blackbird88
Contributor
Blackbird88 commented on 2699338 Feb 18, 2017 edited

@Passingby1
Go back to reddit please. You have no idea what are you talking about. It's not gregory's fault that AMD drivers have critical bugs.

@gregory38
Contributor

Lol. I wanted to say calm down then I saw all the thumbs on the battle field.

Just to be sure that people understand the commit. This commit disables the separate shader object extension (AKA SSO). Rendering will be in theory slower (in theory as AMD has another "bug" that impact the perf). Unfortunately, if I keep the extension enabled, AMD failed to do any correct blending (AKA 1 * 1 = 0 !!!).

So you can say that I'm pro Nvidia. But yet I spend (too much) time to add extra code in GSdx to workaround AMD/Intel driver bugs. So yes AMD renamed their driver twice recently, but the GL driver is still awful.

Now, you're free to complain on your GPU vendor. Or to encourage them to release a working driver.

@wareya
wareya commented on 2699338 Feb 18, 2017 edited

Just for reference to other people: On my system, with a modern Intel CPU and AMD GPU (http://www.userbenchmark.com/UserRun/2062808), the GL renderer is literally half the speed of the software renderer, or worse, at native resolution.

That's just one of the ways in which AMD's GL implementation doesn't work well with PCSX2. It's buggy in general.

@gregory38
Contributor

To be fair it depends on the game and options

@Gamedev1909

to be 100% fair i have no issue at all with slowness on amd with newest drivers

@gregory38
Contributor

AMD acknowledged that driver is broken. You can't say the driver is fine.

You can find screenshot here:

@mirh
mirh commented on 2699338 Feb 19, 2017 edited

On my system, with a modern Intel CPU and AMD GPU, the GL renderer is literally half the speed of the software renderer, or worse, at native resolution.

Considering in the end hw GL is always going to be limited by single-thread performance [and amd at least], while sw one make use of all cores.. It makes sense there are cases were the two things inverts.

Said this, AMD problems were already reported. First time I hear about Intel though. Test how dx11 performance is, and if so much superior report the test-case to them too.

p.s: this thread is a joke

@Gamedev1909
@gregory38
Contributor
it would effect more then just this emulator and it doesnt yours is the issue so look into that

Because most openGL renderer are based on old openGL version. PCSX2 uses modern openGL and complexe blending (AKA 2 sources instead of 1). All drivers (even Intel one) is good except AMD. You could find a nice test case here : https://community.amd.com/thread/194895 which do the multiplication of 2 vectors vec4(1.0f, 1.0f, 0.0f, 1.0f) * vec4(0.0f, 1.0f, 0.0f, 1.0f). The complex part is the red channel 1.0f * 0.0f which gave us 1.0f on AMD HW. Strangely I expected 0.0f, maybe my maths are broken.

@mirh
mirh commented on 2699338 Feb 19, 2017

And to be clear when microsoft says a feature is broken on insider builds yet it works for people anyway well same goes for amd it all depends on the system and users and os so they cant say its broken for all

Software is not magic. Everything is reproducible in the end. If users or whoever writes too-cryptic changelogs are noobs that's another matter.

You can find test-cases attached.

it would effect more then just this emulator

Indeed, if you follow links even psp emulator has problems.

Then if majority of gamers in Windows have direct3d games, and even the rare GL ones don't have to even use undefined behaviors to quickly emulate exoteric hardware, of course nobody complains.

@Gamedev1909
@mirh
mirh commented on 2699338 Feb 19, 2017

Newest builds includes THIS very fix you are complaining about?

Please sign in to comment.