4 Replies Latest reply on Dec 22, 2013 2:31 AM by erflo

    libEGL.so from the GLES SDK is bugged and unusable under Linux ( always segfault )

    erflo

      I'm wondering if I'm missing something or AMD just released an unusable library.

       

      In this case with the GLES sdk there is a general misleading idea of what a programmer is supposed to code, no documentation is provided, nothing about how to use this library, what the dependencies are ( it's too much to ask for a text file where you describe what configuration is needed to run this library ? Under which environment is tested and verified inside AMD ? ), what ABI is supporting, what kernel/X/X11 versions supports, with which compiler is generated and so on; the samples are also offered as "C++" code where infact are just plain old C functions with primitive types, and there is no appropriate use of the extern keyword to properly treat C binding in this "C++" code.

       

      But there is more, this library doesn't work and always goes into segfault ( apparently because of a pointer set internally to 0/NULL ).

       

      I tried to compile a simple EGL snippet and it compiles fine, I even linked the final object properly, but looks like this libEGL.so is nothing more than a wrapper for fglrx_dri.so ( a really bad bad move I should say, both the use of libdl and this kind of "linkage", and libdl it's not even mentioned anywhere, no doc about it ) and I honestly don't get the logic of this, even more, the symbols are defined in both libEGL.so and fglrx_dri.so, this 2 libraries define pretty much the same tokens/symbols ( try objdump or readelf ), it's 2 times the original workload and the result is that no one of them works.

       

      It also looks like that there is no support for the DRI2 infrastructure using any fglrx driver, with pretty much any version of this drivers. I also tried the LTS and the 13.10 versions of Ubuntu amd64 with the same result.

       

      Since there is no documentation at all for this SDK, I don't even know how AMD is conceiving the use of this piece of software, but after some digging I really think that there is a segfault, and is internal to the libEGL and/or the fglrx_dri.so library, and the lack of the DRI2 support doesn't really help either.

       

      Considering this, AMD can possibly provide a working example for EGL using this exact SDK or documentation about how a programmer is supposed to use this product ?

       

      I also wish that AMD will raise its own standards in terms of code quality because a segfault, the lack of documentation and C code compiled in the C++ way, are not exactly a good example of how a company should provide support to who buys its own products.

       

      Thanks.