lunixbochs / glshim

OpenGL 1.x driver shim for OpenGL ES devices.
https://boards.openpandora.org/topic/11506-glshim/
MIT License
159 stars 32 forks source link

Stencil not detected (RemoteGL) #157

Open CartridgeGen opened 8 years ago

CartridgeGen commented 8 years ago

Hello, I used a previous version to get the shim working remotely over exagear, now I wanted to update the files with the new source that has been worked on. My program now fails to run with the updated version of unstable branch when it was running with a november 2015 version of the unstable branch.

This is the error that it gives me. glXGetProcAddress: glBlendEquation not found. Failed to use stencil buffer! Resolution: 640 x 480 libgl_remote killed with signal: 7 Aborted

lunixbochs commented 8 years ago

Can you run with LIBGL_REMOTE_NOISY=1?

CartridgeGen commented 8 years ago

This is what came up :

libGL: warning, gles is NULL libGL:loaded: libEGL.so.1 libGL: built on Mar 18 2016 12:36:11 remote_serve #17 libGL: remote pid 3627 remote call: glXCreateContext(0x9364658, 0x937de68, (nil), 1); libGL: built on Mar 18 2016 12:39:18 libGL:loaded: libGLESv1_CM.so libGL:loaded: libEGL.so returned (4): 0x1479408 remote call: glXMakeCurrent(0x9364658, 56623118, 0x1692f0); returned (4): 0x1 remote call: glXMakeCurrent(0x9364658, 56623118, 0x1692f0); returned (4): 0x1 remote call: glGetString(0x1F03); returned (4): 0x1252348 remote call: glGetString(0x1F02); returned (4): 0x1252328 remote call: glGetString(0x1F00); returned (4): 0x3054191108 glXGetProcAddress: glBlendEquation not found. returned (4): 0x8192 remote call: glPixelStorei(0x0CF5, 1); Failed to use stencil buffer! Resolution: 640 x 480 libgl_remote killed with signal: 7 Aborted

lunixbochs commented 8 years ago

I don't see how it could've worked before with LIBGL_REMOTE, as they're calling SDL_GL_GetAttribute, which wraps glXGetConfig, which I've never supported in remote. I'll add support tonight.

CartridgeGen commented 8 years ago

Thanks, I have the november files aswell, I can make it run and give the output if you need such things.

lunixbochs commented 8 years ago

Try the latest unstable. Remember to rebuild both libgl_remote on the native host and libGL.so on the emulated guest.

CartridgeGen commented 8 years ago

Wow! That was fast! xD I'll try it and give you feedback tomorrow. Thanks a bunch!

CartridgeGen commented 8 years ago

It crashes still, here is the output of NOISY : libGL: warning, gles is NULL libGL:loaded: libEGL.so.1 libGL: built on Mar 18 2016 22:21:49 remote_serve #17 libGL: remote pid 1712 remote call: glXCreateContext(0x9364658, 0x937de50, (nil), 1); libGL: built on Mar 18 2016 22:25:56 libGL:loaded: libGLESv1_CM.so libGL:loaded: libEGL.so returned (4): 0x1479408 remote call: glXMakeCurrent(0x9364658, 48234510, 0x1692f0); returned (4): 0x1 remote call: glXMakeCurrent(0x9364658, 48234510, 0x1692f0); returned (4): 0x1 remote call: glGetString(0x1F03); returned (4): 0x1252424 remote call: glGetString(0x1F02); returned (4): 0x1252404 remote call: glGetString(0x1F00); returned (4): 0x3054109188 glXGetProcAddress: glBlendEquation not found. returned (4): 0x8192 remote call: glPixelStorei(0x0CF5, 1); Failed to use stencil buffer! Resolution: 640 x 480 libgl_remote killed with signal: 7 Aborted

--EDIT-- I've recompiled the november 2015 version of the shim and re-tried the program, it works and here is a screenie of the shim working and the window opened. http://i67.tinypic.com/20gfjie.png

lunixbochs commented 8 years ago

Uhh I've had a hardcoded stencil size of zero since 2013: https://github.com/lunixbochs/glshim/commit/49261f4a1e590294fe869b2c4a912c178ef6c1b8#diff-677181a93120cd771fa18c6651230758R72

void SDLGLFB::InitializeState() 
{
    int value = 0;
    SDL_GL_GetAttribute( SDL_GL_STENCIL_SIZE, &value );
    if (!value) 
    {
        Printf("Failed to use stencil buffer!\n");  //[C] is it needed to recreate buffer in "cheapest mode"?
        gl.flags|=RFL_NOSTENCIL;
    }
}

This also doesn't seem to be a failure case, it's just a random print. Can you attach GDB and get a backtrace on abort? (add -ggdb to CMakeLists.txt add_definitions() call if there are no glshim symbols).

If it's aborting in LIBGL_REMOTE, set LIBGL_REMOTE_GDB=1 to attach gdb on spawn, or if you're having trouble bouncing gdb through exagear replace libgl_remote with a shell script that runs gdb --args libgl_remote "$@"

lunixbochs commented 8 years ago

No, that didn't run with args. Can you tell me what exactly you're running so I can reproduce the issue myself?

CartridgeGen commented 8 years ago

I'm running zandronum and I will give the the .ini file to put in .zandronum because I run it with GL compatibility or else the shim won't work at all. There's also other changes made to the ini file that makes the game a bit faster and helps with compat. Here's the ini file on zippy and here's the website with the instructions on how to use zandronum on linux. You absolutely have to use the ini file I made or else the game wont work. http://zandronum.com/download#instubuntu http://www65.zippyshare.com/v/4uj9zEuN/file.html

--edit--

also just google "doom 1 2 3 plutionia tnt" and you will find the website pc-freak, just get the doom2wad there and rename it with all lowercase letters doom2.wad or else zandronum wont find it.

lunixbochs commented 8 years ago

Looks like that's open source - why are you running it under remote rendering?

On Mar 20, 2016, at 12:23 PM, CartridgeGen notifications@github.com wrote:

I'm running zandronum and I will give the the .ini file to put in .zandronum because I run it with GL compatibility or else the shim won't work at all. There's also other changes made to the ini file that makes the game a bit faster and helps with compat. Here's the ini file on zippy and here's the website with the instructions on how to use zandronum on linux. You absolutely have to use the ini file I made or else the game wont work. http://zandronum.com/download#instubuntu http://www65.zippyshare.com/v/4uj9zEuN/file.html

— You are receiving this because you commented. Reply to this email directly or view it on GitHub

CartridgeGen commented 8 years ago

It wont compile on ARM and I've talked with the devs there for years and there's too many 86-ism's in the code as I've been told and I've also tried multiple times without sucess. It kept stopping at 70-75%.