cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

mirh
Adept III

GL_ARB_separate_shader_objects extension broken

So.. you may or may not know PCSX2, the ps2 emulator.

While developing it, I kind of hit a snag with AMD and just AMD OpenGL driver.

Aside of performance issues (half of direct3D, while other vendors are 100% on par), I get garbled graphics every time I enable this extension.

At first I thought it could be a problem with my code, but after writing a testcase (attached) it must definitively be something within driver.

Please, notice how you get a yellow frame. If you test this on an intel, nvidia or even amd card with open source drivers under linux, it's green.

It seems second index color of shader isn't properly outputed.

Perhaps it's optimized away in a separate program? If I try a monolithic build everything looks just fine.

I can confirm this happens with every driver (15.12 too) on both Windows 7 and 10, and a HD5770 and HD7750.

And this somewhat suggests me it's a problem affecting *every* card and OS.

EDIT: attached right source file

1 Solution

Hello mirh​,  I'm glad to bring some update for you: we had fixed a significant problem for dual-source blending and the fix will be included in the release soon.

Driver crash (TDR/BSOD) on OpenGL programs using dual-source blending

Now we can run GSDumpGUI successfully as follows using OpenGL api.

Full SSO:

pastedImage_0.png

Partial SSO:

pastedImage_1.png

View solution in original post

37 Replies
Anteru
Staff

We're looking into this - it looks like a problem with the interaction of dual-source blending and separate shader programs, and not separate shader objects per se. I'll keep you posted.

The issue has been resolved and the fix will be part of a future driver release. In the meantime, if you use dual-source blending, don't use separate shader objects.

0 Likes

Thank you!

Any chance even VLIW cards owners could enjoy this fix?

When we will get the fix? we want to play with OpenGL...

And thank you for all the work you do.

0 Likes

When this fix will be released ?

0 Likes

Hi,

Is this fix available on current latest driver (Crimson Edition 16.3.2) ?

PCSX2 developer said it is AMD Driver issue gsdx-ogl: move the mandatory extension into mandatory section · PCSX2/pcsx2@b9e8384 · GitHub

Regards

0 Likes

Is not, is not even in 16.4.1 Hotfix.Anteru​ said that it was resolved and it will be released in future driver release but it was about 3 months ago and it's not released yet.

0 Likes

and that is the problem... there was a new release.. but they forgot to put this fix..

0 Likes

can you release it at the next hotfix? it will be a good point

0 Likes

It missed the driver release in March (the one with Vulkan, etc. - which was already in lock-down when the fix was written.) It's scheduled for a future release. Keep in mind any public release goes through a lot of testing and QA! In the meantime, please use the workaround (i.e. don't use separate shader objects.)

0 Likes

There's a new driver out since a week. Is it out now?

0 Likes

We need to wait Anteru to be back on Monday to know what happen.

0 Likes

Only in which Monday it will be 😜

0 Likes

Crimson 16.5.1 Hotfix out but no fix

The fix is released as part of the 16.7.3 drivers.

0 Likes
codexllll
Adept II

Hey AMD, please release this fix. It's killing our community....

0 Likes
tabnk
Journeyman III

Is it so hard to know or tell when or whether the fix will ever release ?

0 Likes

Fix is released in the 16.7.3 driver. Sorry that this took so long!

Could this be fixed again?

Possibly without side-effects.

0 Likes
mirh
Adept III

Still a problem with latest 17.7.2

mirh
Adept III

Still broken and, just because I had nothing better to do, bissected between driver 9.012.0.0000 and 12.100.0.0000 (which could seem a lot, but in fact are just 13.1 and 13.2)

0 Likes
dwitczak
Staff

Raised this internally which is all I can do to help, I'm afraid.

mirh
Adept III

*whistle*

I can also confirm that this applies to AMDGPU-PRO linux driver too (in addition to the late fglrx then).

0 Likes
mirh
Adept III

And also still to the majestic new Adrenalin driver.

0 Likes
mirh
Adept III

18.2.3 still affected.

0 Likes
mirh
Adept III

REMINDER we are still broken since a forgetful time

Hello mirh​, we're sorry to have kept you waiting for long time. We've already had a internal fix developed. Will let you know when this fix will be included in the public release. Thanks.

Thank you.

I'll assume without incurring in Driver crash (TDR/BSOD) on OpenGL programs using dual-source blending this time?

0 Likes

Actually, we're developing the fix for dual-source blending issue this time. Anyway, I can double-confirm all the issues you care on my box and give you the result immediately, if you can share your tests applications besides the one you attached in this thread.  Apologies again for waiting such a long time.

Here you are.

Just point the two "directories" text boxes to the GSDumpGUI root folder, and run it.

If you select "full sso" GSdx you should just get the garbling caused by this issue.

"Partial sso" instead causes the TDR

0 Likes

For the test app you attached at the beginning, it works now, see the picture below. For the 2nd problem reproduced by your GSDumpGUI, we're working on this right now. Will give you back when we have progress. Thanks.

pastedImage_0.png

0 Likes

18.10.1 still broken

0 Likes

Apologies. We have a long testing cycle for the driver release, so the fix has not been included in 18.10.1 yet. It will be in the next driver release, thanks for you patience. 

0 Likes

More, mirh​, if you can provide me the minimal source code/binary to reproduce the issue reported in Driver crash (TDR/BSOD) on OpenGL programs using dual-source blending, ​ it'll be very helpful to further debugging this problem efficiently, which can save efforts to clone code/build/understand the application @ GitHub - PCSX2/pcsx2: PCSX2 - The Playstation 2 Emulator

0 Likes

Unfortunately I don't have such neat thing for that.

On the other hand you shouldn't need to compile the whole thing. Just the GSdx plugin should be enough.

The "concerning" file for blending should be this then pcsx2/GSDeviceOGL.cpp at master · PCSX2/pcsx2 · GitHub

0 Likes

Hello mirh​,  I'm glad to bring some update for you: we had fixed a significant problem for dual-source blending and the fix will be included in the release soon.

Driver crash (TDR/BSOD) on OpenGL programs using dual-source blending

Now we can run GSDumpGUI successfully as follows using OpenGL api.

Full SSO:

pastedImage_0.png

Partial SSO:

pastedImage_1.png

Fix landed in 18.10.2.

Thank you really.

Wouldn't hurt if you rolled up your sleeves and studied in deep the performance issues now.