glshim

Discussion in 'General Discussions' started by lunixbochs, Jan 11, 2013.

  1. MarKov

    MarKov Newbie

    Joined:
    Sep 25, 2015
    Messages:
    16
    I knew it was too crazy to not be wrong, duh!

    I had a stray older libGL in my home directory which sometimes took precedence over LD_LIBRARY_PATH. When I saw the game working it was actually using the latest glshim. Thanks and sorry for the fuss!
     
  2. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,179
    Location:
    France, near Lyon
    @MarKov : so no other bug in texgen in latest glshim? Good :D !
     
  3. MarKov

    MarKov Newbie

    Joined:
    Sep 25, 2015
    Messages:
    16
    Or so we thought! :(

    It takes up to a minute of gameplay to get this crash:

    Code:
    Program received signal SIGSEGV, Segmentation fault.
    0xb65de148 in __memcpy_neon () at ../ports/sysdeps/arm/armv7/multiarch/memcpy_impl.S:332
    332     ../ports/sysdeps/arm/armv7/multiarch/memcpy_impl.S: No such file or directory.
    (gdb) bt
    #0  0xb65de148 in __memcpy_neon () at ../ports/sysdeps/arm/armv7/multiarch/memcpy_impl.S:332
    #1  0xb6cc00f4 in memcpy (__len=12, __src=0xa3a12ffc, __dest=0x22a8dc8) at /usr/include/arm-linux-gnueabihf/bits/string3.h:51
    #2  copy_gl_array_texcoord (src=<optimized out>, from=<optimized out>, width=3, stride=<optimized out>, to=to@entry=5126,
        to_width=to_width@entry=4, skip=45055, skip@entry=22600, count=count@entry=45399, filler=0xbeffa2b4,
        filler@entry=0xbeffa2ac) at /tmp/glshim-master/src/gl/array.c:91
    #3  0xb6cc63d4 in copy_gl_pointer_tex (ptr=<optimized out>, width=width@entry=4, skip=skip@entry=22600,
        count=count@entry=45399, buff=0x20bba88) at /tmp/glshim-master/src/gl/array.c:269
    #4  0xb6c9f24c in arrays_to_renderlist (list=0x223da38, list@entry=0x0, mode=mode@entry=4, skip=22600, count=45399)
        at /tmp/glshim-master/src/gl/gl.c:641
    #5  0xb6ca1108 in glshim_glDrawElements (mode=4, count=972, type=<optimized out>, indices=<optimized out>)
        at /tmp/glshim-master/src/gl/gl.c:718
    #6  0x0020cea4 in ?? ()
    #7  0x00211358 in drawTerrain() ()
    #8  0x00090af0 in draw3DScene() ()
    #9  0x000953bc in displayWorld() ()
    #10 0x0011cb6c in ?? ()
    #11 0x0011de9c in gameLoop() ()
    #12 0x0011f220 in mainLoop() ()
    #13 0x002b3e58 in wzMain3() ()
    #14 0x00120a00 in realmain(int, char**) ()
    #15 0xb6597632 in __libc_start_main (main=0x5613c <main>, argc=1, argv=0xbeffeee4, init=<optimized out>,
        fini=0x2b5de5 <__libc_csu_fini>, rtld_fini=0xb6fea4c5 <_dl_fini>, stack_end=0xbeffeee4) at libc-start.c:287
    #16 0x000566b0 in _start ()
    This is definitely coming from the latest glshim, no mistakes this time :)
     
  4. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,179
    Location:
    France, near Lyon
    Ok Thanks @MarKov : I should have enough info to identify the issue.
     
  5. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,179
    Location:
    France, near Lyon
    @MarKov : I think I should have fixed it with latest commit.
     
  6. MarKov

    MarKov Newbie

    Joined:
    Sep 25, 2015
    Messages:
    16
    @ptitSeb The crashes are gone but unfortunately some of the textures too :)
     

    Attached Files:

  7. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,179
    Location:
    France, near Lyon
    @MarKov : I have another try, if you can test.
     
  8. MarKov

    MarKov Newbie

    Joined:
    Sep 25, 2015
    Messages:
    16
    A little too dark for my taste ;)
     

    Attached Files:

  9. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,179
    Location:
    France, near Lyon
    Oh, it's worse?!!!
     
  10. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,179
    Location:
    France, near Lyon
    @MarKov : ok, fixed it, and I tested it this time... It was stable for me...
     

    Attached Files:

  11. MarKov

    MarKov Newbie

    Joined:
    Sep 25, 2015
    Messages:
    16
    Yay! I could swear I saw a small but noticeable performance boost.

    I read something about texture compression in the changelog (parental guidance required? ;)) - what are the chances of having ARM native compression to keep memory usage down? It seems, if I turn texture compression on at app level, nothing bad happens (well done!) but there's no difference either.
     
  12. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,179
    Location:
    France, near Lyon
    @MarKov : yep, performance should be better because of the fix (I was processing to much datas before).

    About compression, hardware doesn't support S3TC. So even glshim now handle it (both decoding from and encoding to), it will not bring any boost.
    If you want more fps, try the many env. variable tweaks, like LIBGL_SHRINK or LIBGL_BATCH (look in the readme of the github for more details).
     
  13. MarKov

    MarKov Newbie

    Joined:
    Sep 25, 2015
    Messages:
    16
    I take it compression is done in software at the moment; is it possible to translate S3TC to ARM format(whatsitname) in hardware?
     
  14. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,179
    Location:
    France, near Lyon
    There is 2 big familly of texture compression on SGX hardware: ETC & PVR.
    ETC can be use, supported on all GLES 1.1 hardware, and there can be some DXT1 -> ETC transcoder written... but ETC only works on RGB and doesn't handle alpha chennels. Most compressed textures are RGBA so it will be mostly useless.
    PVR is very ressource intensive, only supported on SGX, and I don't think there is an opensource encoder for PVR. So not really an option.

    And to explain further:
    Right now, when a texture is loaded as Compressed (with DXTx compression), it's decoded but size of the texture is then reduce before going to memory, to still save space.
    But if a regular texture is loaded with internal format set to some Compressed format, nothing is done to save memory...
     
  15. Letalis Sonus

    Letalis Sonus Advanced Member

    Joined:
    Mar 5, 2009
    Messages:
    1,004
  16. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,179
    Location:
    France, near Lyon
  17. ElPoco

    ElPoco Very Active Member

    Joined:
    Feb 16, 2012
    Messages:
    634
    Location:
    Paris, France
    I've compiled glshim 0.42 but there's something I'm unclear of in the setup procedure, the libgl_remote, does it go to the /usr/local/bin of the Pandora or the /usr/local/bin of the exagear ubuntu image?
     
  18. ElPoco

    ElPoco Very Active Member

    Joined:
    Feb 16, 2012
    Messages:
    634
    Location:
    Paris, France
    I can't seem to get it working. I've tried with a fresh install of exagear with just mesa-utils (and dependencies) on top to have glxinfo and glxgears, but whenever I try to start glxinfo, I get:
    "couldn't find RGB GLX visual or fbconfig".

    EDIT: xeyes is working if that's any help
     
    Last edited: Mar 17, 2016
  19. Pickle

    Pickle Mega GP Mania

    Joined:
    May 30, 2006
    Messages:
    5,398
    Location:
    Detroit, Michigan
    ETC1 can be used to 'do RGBA' but it requires gles2. I used this method for hurrican. I used a script to covert my RGBA images to 2 images one containing the RGB data and another only containing the alpha channel. I then encode the RGB to ETC1. The Alpha texture is left normal.
    Then using multitexture and a specific shader the 2 textures can be loaded and blended together.
     
    PokeParadox likes this.
  20. ElPoco

    ElPoco Very Active Member

    Joined:
    Feb 16, 2012
    Messages:
    634
    Location:
    Paris, France
    OK I got it. Since I installed mesa to get glxgears it was trying to use the mesa driver. I've made it use the glshim driver instead but got this:

    ~# LD_LIBRARY_PATH=/usr/local/lib LIBGL_REMOTE=1 LIBGL_REMOTE_NOSPAWN=1 glxgears -info
    libGL: warning, gles is NULL
    libGL: warning, egl is NULL
    libGL: built on Mar 15 2016 10:06:02
    connect: Connection refused
    Aborted

    Is there a problem with the gles/egl ?
     

Share This Page

Loading...