Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: GLSL and ATI Linux driver

Hybrid View

  1. #1
    Junior Member Newbie
    Join Date
    Jul 2006
    Posts
    5

    GLSL and ATI Linux driver

    Just acquired a notebook with Radeon Xpress 200M card, installed Linux and ATI Linux driver 8.26.18 on it. OpenGL version reported by fglrxinfo utility is 2.0.5879, so I was thinking that finally I'll be able to approach writing some OpenGL 2.0 code. However:
    1. There is no OpenGL 2.0 header file installed.
    2. When listing symbols from libGL.so installed, seems like OpenGL 2.0 API is not there - for example, glCreateProgramObject() is not listed there, while glCreateProgramObjectARB() is listed.

    So - any hint regarding does this card/driver actually have OpenGL 2.0 support or not, and if so, how to employ it from the code?

    Thanks.

  2. #2
    Intern Newbie
    Join Date
    Mar 2003
    Posts
    46

    Re: GLSL and ATI Linux driver

    Use glew (http://glew.sf.net) or similar tool, and then use the ARB extensions.

  3. #3
    Junior Member Newbie
    Join Date
    Jul 2006
    Posts
    5

    Re: GLSL and ATI Linux driver

    I know I could do this, but this is OpenGL 1.5, not OpenGL 2.0 way, right?

  4. #4
    Senior Member OpenGL Guru Relic's Avatar
    Join Date
    Apr 2000
    Posts
    2,527

    Re: GLSL and ATI Linux driver

    Originally posted by Crni Gorac:
    2. When listing symbols from libGL.so installed, seems like OpenGL 2.0 API is not there - for example, glCreateProgramObject() is not listed there, while glCreateProgramObjectARB() is listed.
    That might be because there is no glCreateProgramObject() in OpenGL 2.0, it's called glCreateProgram() there.

  5. #5
    Junior Member Newbie
    Join Date
    Jul 2006
    Posts
    5

    Re: GLSL and ATI Linux driver

    Sorry, it should have been glCreateProgram() on the first place - it is not there, only glCreateProgramObjectARB(), as mentioned above...

  6. #6
    Senior Member OpenGL Pro
    Join Date
    May 2000
    Location
    Naarn, Austria
    Posts
    1,142

    Re: GLSL and ATI Linux driver

    You have to load everything that's above OpenGL 1.2 through the extension loading mechanism.

    There is no need to check the extension string, just check the version string, then you can get your functions with glxGetProcAddressARB.

    As nrg pointed out earlier, you can use glew to automate this process.

  7. #7
    Junior Member Newbie
    Join Date
    Jul 2006
    Posts
    5

    Re: GLSL and ATI Linux driver

    OK, got it: so it's just not possible to state "#include <GL/gl.h>" and then use OpenGL 2.0 API directly with this particular driver/card combination. But then again - is something alike possible with ATI driver and some other ATI cards, and how it goes for Nvidia drivers/cards? Must confess I'm pretty confused by having a statement by manufacturer that card/driver support OpenGL 2.0 and then still have to use extensions to employ this functionality from my code...

    Thanks.

  8. #8
    Super Moderator OpenGL Guru
    Join Date
    Feb 2000
    Location
    Montreal, Canada
    Posts
    4,421

    Re: GLSL and ATI Linux driver

    Originally posted by Overmind:
    You have to load everything that's above OpenGL 1.2 through the extension loading mechanism.
    I thought they were keeping libGL.so up to date.

    Originally posted by Crni Gorac:
    Must confess I'm pretty confused by having a statement by manufacturer that card/driver support OpenGL 2.0 and then still have to use extensions to employ this functionality from my code...
    They are saying you need to get the function pointers because libGL.so doesn't export them, which means libGL.so is at version 1.2 while the ATI driver is at 2.0
    You could in fact get pointers to all GL functions. It doesn't mean they are extensions.
    ------------------------------
    Sig: http://glhlib.sourceforge.net
    an open source GLU replacement library. Much more modern than GLU.
    float matrix[16], inverse_matrix[16];
    glhLoadIdentityf2(matrix);
    glhTranslatef2(matrix, 0.0, 0.0, 5.0);
    glhRotateAboutXf2(matrix, angleInRadians);
    glhScalef2(matrix, 1.0, 1.0, -1.0);
    glhQuickInvertMatrixf2(matrix, inverse_matrix);
    glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
    glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);

  9. #9
    Junior Member Newbie
    Join Date
    Jul 2006
    Posts
    5

    Re: GLSL and ATI Linux driver

    They are saying you need to get the function pointers because libGL.so doesn't export them, which means libGL.so is at version 1.2 while the ATI driver is at 2.0
    You could in fact get pointers to all GL functions. It doesn't mean they are extensions.
    I understand all of this, what I don't understand is exactly what is the meaning of "ATI driver is at 2.0" qualification? I was thinking that having this qualification applied would mean precisely what I mentioned above - for developer to be able to just include appropriate "GL/gl.h" and then use glCreateProgram() and alike OpenGL 2.0 functions.

  10. #10
    Senior Member OpenGL Guru Humus's Avatar
    Join Date
    Mar 2000
    Location
    Stockholm, Sweden
    Posts
    2,444

    Re: GLSL and ATI Linux driver

    The problem is that there's an OS component to this too, and while I'm not expert on this on the Linux side I believe this is called the ABI and is still on 1.3. Still better than 1.1 in Windows, but it means you'll have to dynamically load anything that's above 1.3, just like you have to load everything above 1.1 dynamically in Windows.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •