Rpcs3: N2gl4glsl14link_exceptionE thrown: linkage failed: 'error: fragment shader input `tc0' has no matching output in the previous stage

Created on 27 Apr 2017  路  32Comments  路  Source: RPCS3/rpcs3

Bayonetta fails on mesa git with this error under radeonsi and AMD RX480
The log File is too big to attach

All 32 comments

BTW under LINUX

The log File is too big to attach

Why not upload to Pastebin or Gists or Termbin or Ghostbin or...?

Compress it with 7zip using LZMA2 Ultra

Hello! I have same error.
Linux x86-64
mesa-git, radeonsi, Radeon 7950
Game: Demon's Souls.
Menu normal. When start new game or load saved game, during loadscreen in left bottom corner animations loading stops and in log i see that error.
https://pastebin.com/Br7HkfGL

I switch log to trace
Last ~400 line
https://pastebin.com/C8sftrja

Hi all, Mesa version? Which distro and version? Are you compiling this yourself or using a pre-compiled version?
EDIT:
If your compiling it yourself are you compiling with GCC or Clang, and which versions? Are you compiling with LLVM 4.0? If your using a pre-compiled version try compiling it yourself.

Ok, I see your running mesa git, try updating to the latest git again, do other OpenGL games or emulators (like Dolphin) run fine?

@hcorion
Version rpcs3 compiled myself. https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=rpcs3-git

do other OpenGL

All normal. I test in rpcs3 two game. Catherin - play normal and Demon's Soul- this error.

I use LLVM 5.0.0svn.

I'm assuming this is a bug in mesa and not RPCS3, but some further tests should be done in with the same hardware in Windows and different hardware/drivers on linux.

hi i made some researchs and i found this fix (JoeFix Bayonetta) makes the game go a little further and maybe it can help to fix after this hack bayonetta stops with the same error but instead of tc0 tc2 is not ok
maybe some error in rx-decode?
GLVertexProgram.zip

NOTE i found the same type of error in wine under no mans sky game

@giovannilaura Well No Man's Sky is supposed to work perfectly on Wine, I'm 98% sure this is an issue with mesa and not one with RPCS3.

For those wondering the patch file contains at line 350:

                        if (name == "tc9") name = "tc0"; //JoeFix Bayonetta
                        LOG_ERROR(RSX, "VERTEXPROGRAM: %s", name); //JoeFix inverstigate BAYONETTA

Could you try stable mesa and see if it works there?

No Man's Sky is supposed to work perfectly on Wine

On Nvidia blob. No Man's Sky use OpenGL compatible profile. Mesa OpenGL CP maximum 3.0. No Man's Sky dont work on mesa in wine.

Well RPCS3 doesn't work without minimum OpenGL 4.3

minimum OpenGL 4.3

Compatibility or Core profile?

I'm not sure, but the problem seems to be that Demon Souls and Bayonetta seem to using advanced OpenGL 4.3 features that your version of mesa doesn't yet support. Perhaps @kd-11 could shed some light?

Current mesa:
Max core profile version: 4.5
Max compat profile version: 3.0
And no plans too support compat profile more than 3.0.
I think you right and problem in compat profile 3.0. That mean we mast wait support Vulcan in RPCS3 on linux or rewrite RPCS to use OpenGL core profile.
Any way wait what @kd-11 says.

sorry i was tryiing to help

RPCS3 needs some 4.3 extensions; only core profile methods are used, but core profile code is compatible with ARB_compatibility, so thats not an issue. However, mesa only supports core profile for any features past 3.3. On windows, we do get a core profile due to the bundled wx code, but on linux system provided wx libs are used. If compiled agains wx 3.1, you get core profile. Unfortunately linux distros are stuck with wx 3.0 which does not support core profile flags. As for this particular bug, I'll need more tests since the log does not show the mismatched shader code. I'll try running demon's souls in linux+radeonsi and see what happens.

As i can understand you (rpcs3 team) want use Qt instead wx. When this happens is this bug gone?

Hopefully, but I'll still try looking into why theres a mismatch with the current setup and why visual studio binaries dont hit the same bug.

LOG for bayonetta with dumped shader

lof for rayman 3 hd with dumped shader
bayonetta.txt
rayman3.txt

hope i can help

I am on Fedora 25 and i have xwWidget 3.1 i tried to force a core profile of 4.3 in GLGSFRame.cpp but the error remains the same

Confirmed, bug fixed for me in git master.

@kd-11 quick question, now when i in game select "load profile" game lock and in console i see error:
F {rsx::thread} N2gl4glsl14link_exceptionE thrown: linkage failed: 'error: fragment shader input `diff_color' has no matching output in the previous stage
Should i create new issue?

No need; I'll add diff_color to the list of shader outputs to force. In fact, it seems we can just always write any 'declared' channels as output to silence mesa. However, load profile will lock up the emulator very often in demon's souls due to other issues anyway.

it does not work for Rayman HD but it does work for super rub a dub
RPCS3log.txt

Other game affected for this error after the menu press start "push X"

Beyond GOOD & Evil HD NPUB30394

F {rsx::thread} : N2gl4glsl14link_exceptionE thrown: linkage failed: 'error: fragment shader input diff_color' has no matching output in the previous stage error: fragment shader inputtc0' has no matching output in the previous stage

There was another issue that the forced output did not work in all cases.

I fixed it but I am afraid that my pull request won't pass. For some reason there are modifications in submodules I did not touch. WHY???

Was this page helpful?
0 / 5 - 0 ratings

Related issues

xddxd picture xddxd  路  3Comments

elad335 picture elad335  路  3Comments

JohnGodgames picture JohnGodgames  路  3Comments

LokiGrants picture LokiGrants  路  3Comments

Asinin3 picture Asinin3  路  3Comments