This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Mali OpenGL ES Emulator v1.3.1 assert in eglMakeCurrent() on NVIDIA/64-bit Ubuntu 13.10

Hello,

I get the following assert when running the included 'cube' demo:

$ ./cube

GL renderer: [NULL]

GL vendor:[NULL]

GL version: [NULL]

GL shading language version: [NULL]

cube: /home/jenkins/workspace/opengles30-emulator-packaging-nightly/Arch/x64/OS/linux/gles/opengles30/src/gles30_system_fbo.cc:501: bool system_fbo_init(GLuint, _context_data*, bool): Assertion `depth_to_id != 0' failed.

Aborted (core dumped)

The backtrace is as follows:

#0  0x00007ffff67bcf77 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56

#1  0x00007ffff67c05e8 in __GI_abort () at abort.c:90

#2  0x00007ffff67b5d43 in __assert_fail_base (fmt=0x7ffff690cf58 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7ffff7873c9d "depth_to_id != 0",

    file=file@entry=0x7ffff7873b80 "/home/jenkins/workspace/opengles30-emulator-packaging-nightly/Arch/x64/OS/linux/gles/opengles30/src/gles30_system_fbo.cc",

    line=line@entry=501,

    function=function@entry=0x7ffff7873ce0 <system_fbo_init(unsigned int, _context_data*, bool)::__PRETTY_FUNCTION__> "bool system_fbo_init(GLuint, _context_data*, bool)")

    at assert.c:92

#3  0x00007ffff67b5df2 in __GI___assert_fail (assertion=0x7ffff7873c9d "depth_to_id != 0",

    file=0x7ffff7873b80 "/home/jenkins/workspace/opengles30-emulator-packaging-nightly/Arch/x64/OS/linux/gles/opengles30/src/gles30_system_fbo.cc", line=501,

    function=0x7ffff7873ce0 <system_fbo_init(unsigned int, _context_data*, bool)::__PRETTY_FUNCTION__> "bool system_fbo_init(GLuint, _context_data*, bool)") at assert.c:101

#4  0x00007ffff777319a in system_fbo_init(unsigned int, _context_data*, bool) () from /usr/local/lib/libGLESv2.so.2

#5  0x00007ffff777892d in init_context_data_from_within_active_context(unsigned int, _context_data*) () from /usr/local/lib/libGLESv2.so.2

#6  0x00007ffff77a6e0b in context_data_storage_make_context_current () from /usr/local/lib/libGLESv2.so.2

#7  0x00007ffff77a3c02 in GLES3_MakeCurrent () from /usr/local/lib/libGLESv2.so.2

#8  0x00007ffff77a3c7d in GLES2_MakeCurrent () from /usr/local/lib/libGLESv2.so.2

#9  0x00007ffff7ba71bf in GLES2_MakeCurrent () from /usr/local/lib/libEGL.so.1

#10 0x00007ffff7ba9e23 in makeCurrent(void*, void*, void*, void*) () from /usr/local/lib/libEGL.so.1

#11 0x00007ffff7bae4af in eglMakeCurrent () from /usr/local/lib/libEGL.so.1

#12 0x000000000040223e in main (argc=1, argv=0x7fffffffdd38) at src/cube.cc:283

When using the libEGL.so.1 and libGLESv2.so.1 bundled with Mesa (LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa-egl/ ./cube on my system) instead of those from the emulator, the example runs fine.

System specs:

uname -a: Linux huvuddator 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Ubuntu 13.10

GeForce GT 430, NVIDIA driver version 319.32


The same problem also occurs on a different system with the following specs (where it also runs fine with the Mesa libs):

uname -a: Linux jp 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Ubuntu 13.10

GeForce GTX 660 Ti, NVIDIA driver version 304.108

Parents Reply Children
  • That fixed it - thanks!

    It seems a bit strange though, since the NVIDIA driver is apparently already in the dynamic linker's search path:

    $ ldd cube

        linux-vdso.so.1 =>  (0x00007fffebbfe000)

        libEGL.so.1 => /usr/local/lib/libEGL.so.1 (0x00007fb7fce6c000)

        libGLESv2.so.2 => /usr/local/lib/libGLESv2.so.2 (0x00007fb7fc99c000)

        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fb7fc666000)

        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb7fc362000)

        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb7fc05e000)

        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb7fbe47000)

        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb7fba7f000)

        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb7fb87b000)

        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb7fb65d000)

        libGL.so.1 => /usr/lib/nvidia-319/libGL.so.1 (0x00007fb7fb32f000)

        /lib64/ld-linux-x86-64.so.2 (0x00007fb7fd0f7000)

        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fb7fb111000)

        libnvidia-tls.so.319.32 => /usr/lib/nvidia-319/tls/libnvidia-tls.so.319.32 (0x00007fb7faf0d000)

        libnvidia-glcore.so.319.32 => /usr/lib/nvidia-319/libnvidia-glcore.so.319.32 (0x00007fb7f89b6000)

        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fb7f87a3000)

        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fb7f859f000)

        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fb7f8399000)

    Shouldn't the dlopen("libGL.so", ...) or similar that I assume is being done at runtime automatically use the same search path?

    ($ LD_LIBRARY_PATH=/usr/lib/nvidia-319 ldd cube has the same output as above by the way, though I realize it can still affect runtime stuff.)