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

Latest devkitPPC GCC Regression #50

Closed
PsiLupan opened this issue Jun 23, 2020 · 9 comments
Closed

Latest devkitPPC GCC Regression #50

PsiLupan opened this issue Jun 23, 2020 · 9 comments

Comments

@PsiLupan
Copy link

Have a large project that prior to updating to the latest devkitPro release today from what was presumably GCC 8.2.0, I began experiencing a graphical regression related to the colors when compiling with GCC after updating.

My project has branch for GCC and another branch for Clang that I regularly switch between, and the issue is not present for Clang. As a result, I don't suspect it's an issue with libogc itself - but it's hard to narrow down.

I also tested on a Gamecube, and it outright crashes to the stack trace rather than displaying as Dolphin does. Unfortunately, I can't really show that, since my capture card is in a box somewhere and the TV itself is unreadable. This crash not occur for Clang, which renders on a Gamecube correctly.

Not sure I can really come up with a test case here, but figured I'd make note of it in case someone else runs into this.

GCC:
GCCBug

Clang:
ClangNoBug

@endrift
Copy link

endrift commented Jun 23, 2020

Gonna be hard to diagnose this without code.

@PsiLupan
Copy link
Author

PsiLupan commented Jun 23, 2020

Gonna be hard to diagnose this without code.

Yeah, unfortunately, it's too large of a project for me to come up with a small test case here. If I can locate my capture card, I'll at least try to get the stack track that I saw and narrow down the difference between Dolphin and console's handling of it that changed with this GCC update.

@endrift
Copy link

endrift commented Jun 24, 2020

https://github.com/PsiLupan/FRAY is this the project in question? You didn't mention what it was that was breaking.

@PsiLupan
Copy link
Author

https://github.com/PsiLupan/FRAY is this the project in question? You didn't mention what it was that was breaking.

It is - Sorry, should've mentioned it.

@WinterMute
Copy link
Member

-Wno-implicit-function-declaration is a really terrible idea, you really should give the compiler the function signatures it craves and not just turn that warning off.

@PsiLupan
Copy link
Author

-Wno-implicit-function-declaration is a really terrible idea, you really should give the compiler the function signatures it craves and not just turn that warning off.

It's a hold over from very, very early on where I was mostly writing code for the sake of getting it written, rather than working piece-by-piece. I had forgotten that was still on, but I'll keep that in mind - Thanks

@WinterMute
Copy link
Member

Turning that warning back on and adding -Wall I get a lot of warnings that really should be fixed. Implicit function definitions and may be used uninitialized are classic nasal demon triggers.

build.log

I would be massively unsurprised if fixing all those warnings made the issue go away. Can't guarantee it will but I've seen far too many problems "magically fixed" by simply fixing warnings.

@WinterMute WinterMute transferred this issue from devkitPro/libogc Jun 24, 2020
@WinterMute
Copy link
Member

Also moved this to the buildscripts repo where we currently manage the tools. It's not a libogc issue.

This is also likely to be closed pending an actual testcase that shows an actual bug. Working when built with one compiler and not working when built with another compiler (whether that be a different gcc version or clang or any other random compiler you have access to) isn't necessarily an indication of any fault with the compiler.

@PsiLupan
Copy link
Author

Turning that warning back on and adding -Wall I get a lot of warnings that really should be fixed. Implicit function definitions and may be used uninitialized are classic nasal demon triggers.

build.log

I would be massively unsurprised if fixing all those warnings made the issue go away. Can't guarantee it will but I've seen far too many problems "magically fixed" by simply fixing warnings.

Cleaned up nearly all the warnings, save for some in some unused functions. Also, specifically checked a known use of an uninitialized value for the tev coloring that the game itself does, and that didn't appear to be the culprit either.

It's not likely I'll be able to come up with a test case anytime soon, so I guess I'll go ahead and close this. I'll try to get the stack trace at some point and see where it happens. If it's in libogc, I'll bring the issue back there with more details on the nature of that.

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

No branches or pull requests

3 participants