-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
EGL_BAD_MATCH (0x3009) on Mali G52 #11839
Comments
See #11714, at least one other user has used USING_FBDEV instead. This basically means you don't run it inside a windowing system, and it's forced full screen. EGL_BAD_MATCH means eglCreateWindowSurface failed. It's possible this is a bug. Make sure you're using the latest git, and try editing SDL/SDLGLGraphicsContext.cpp. Look for this code: EGLint caveat = readConfig(EGL_CONFIG_CAVEAT);
int caveatScore = caveat == EGL_NONE ? 100 : (caveat == EGL_NON_CONFORMANT_CONFIG ? 50 : 0); And add below it: #ifndef USING_FBDEV
EGLint surfaceType = readConfig(EGL_SURFACE_TYPE);
int surfaceScore = (surfaceType & EGL_WINDOW_BIT) ? 100 : (caveat == EGL_NON_CONFORMANT_CONFIG ? 50 : 0);
#endif Next find this line: score += caveatScore + renderableScoreGLES + renderableScoreGL; And add immediately after it: #ifndef USING_FBDEV
score += surfaceScore;
#endif This may fix things so you can use PPSSPP within a windowing system. If it doesn't, it may mean you have to use FBDEV. -[Unknown] |
Thanks for the reply, I forgot to mention that I am using FBDEV, as there is no window manager on CoreELEC. These are my params
I am going to try implementing your suggestions and I will get back with the results. |
Hm, those code changes shouldn't do anything useful with USING_FBDEV.... By the way, I don't recommend using system FFmpeg, you may get bugs or glitches in video, or iirc the wrong video may play in a few games. It might be that your framebuffer doesn't support the bitdepth we're getting configs for. You could try adjusting the weights or debug using the method described here: -[Unknown] |
Adding those printf lines resulted in this:
But after that I get the same error:
|
Last two look very odd heh, HDR modes? We should probably avoid those, if we aren't already... |
I think we don't dodge large color depths, so maybe try replacing... int colorScore = readConfig(EGL_RED_SIZE) + readConfig(EGL_BLUE_SIZE) + readConfig(EGL_GREEN_SIZE); With: auto readConfigMax = [&](EGLint attr, EGLint m) -> EGLint {
EGLint val = readConfig(attr);
return val > m ? 1 : val;
};
int colorScore = readConfigMax(EGL_RED_SIZE, 8) + readConfigMax(EGL_BLUE_SIZE, 8) + readConfigMax(EGL_GREEN_SIZE, 8); You can also try putting 5/6/5 or 4/4/4 for those numbers instead of 8/8/8 and see if any of that helps. -[Unknown] |
With this change it now works :) Thank you very much! |
This is solved, Thanks @unknownbrackets |
Lets not close until the changes are merged |
EGL: Avoid HDR mode. Uses unknownbrackets' changes from #11839.
Unfortunately after my kernel was updated, this fails again, I tried forcing a configuration, but I couldn't make it work :( These are my results now:
as you can see it seems to be selecting this:
Which seem to be correct but it might also be
but I don't know how to force it to choose that one so I can test. |
It's very odd that your driver would return a config that it would then not want to create a context with... |
I know, that is why I want to try and force a config, but not sure how to do that |
We definitely need to add some better debug printing and logic, and eventually I want to get the EGL path working on desktop linux as well. Won't have time to really work on this until I've gotten 1.8.0 out the door though, it's the highest priority right now (since 1.7 is broken on many Android devices due to Vulkan driver bugs on PowerVR). |
No rush, thanks for all of your work. |
I've been trying to make PPSSPP run on an Odroid N2, I-ve compiled it and it runs but it gives me this error
I can hear the game playing in the background but nothing on the screen.
Other emulators seem to run with GLES 2.0 but PPSSPP doesn't even show it on that line.
is there a way to force PPSSPP to use GLES 2.0? so I can test if this is the problem?
Not sure what EGL_BAD_MATCH means but any help will be appreciated.
What happens?
Black screen on Mali-G52
What should happen?
Run the game or display the PPSSPP GUI
What hardware, operating system, and PPSSPP version? On desktop, GPU matters for graphical issues.
CoreELEC running on Odroid N2 , GPU mali-G52
The text was updated successfully, but these errors were encountered: