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 13

Thread: To ICD Authors (ATI, NVIDIA, etc)

  1. #1
    Member Regular Contributor
    Join Date
    Nov 2000
    Location
    Belmont, CA
    Posts
    254

    To ICD Authors (ATI, NVIDIA, etc)

    What is the mechanism through which OpenGL32.dll finds the vendor-supplied ICD? How do you write your own ICD? How do you find this stuff out from Microsoft?

    -Won

  2. #2
    Senior Member OpenGL Pro
    Join Date
    Jun 2000
    Location
    Shreveport, LA, USA
    Posts
    1,757

    Re: To ICD Authors (ATI, NVIDIA, etc)

    It would be my guess that this information would be part of the Windows DDK.

  3. #3
    Senior Member OpenGL Guru knackered's Avatar
    Join Date
    Aug 2001
    Location
    UK
    Posts
    3,032

    Re: To ICD Authors (ATI, NVIDIA, etc)

    You may find this article interesting:- http://www.gamasutra.com/features/19...assmore_01.htm

    You may have to sign up for a username with gamasutra, but it's free and will be useful for you in the future.
    Knackered

  4. #4
    Member Regular Contributor
    Join Date
    Nov 2000
    Location
    Belmont, CA
    Posts
    254

    Re: To ICD Authors (ATI, NVIDIA, etc)

    ICD development is not covered in the DDK -- only MCD (which is no longer really supported).

    Unfortunately, not only is that article basically out of date, it doesn't really give any insight on how to actually implement an ICD.

    Is the SGI open-source ICD designed to work with the current Windows OpenGL mechanism? Are all the answers lurking in the SGI opensource implementation?

    -Won

  5. #5
    Senior Member OpenGL Guru knackered's Avatar
    Join Date
    Aug 2001
    Location
    UK
    Posts
    3,032

    Re: To ICD Authors (ATI, NVIDIA, etc)

    I said you may find it interesting, not useful.
    Knackered

  6. #6
    Senior Member OpenGL Guru
    Join Date
    Mar 2001
    Posts
    2,704

    Re: To ICD Authors (ATI, NVIDIA, etc)

    There's a registry spy program which can show you who looks up what in the registry. I think you can find it on www.sysinternals.com if you look. I'm postulating that installing this tool and using it on a program that just opens the OpenGL driver might teach you something. Please report back to this thread when you're done :-)

    (I think it's the "Regmon" utility)
    "If you can't afford to do something right,
    you'd better make sure you can afford to do it wrong!"

  7. #7
    Super Moderator OpenGL Guru dorbie's Avatar
    Join Date
    Jul 2000
    Location
    Bay Area, CA, USA
    Posts
    4,388

    Re: To ICD Authors (ATI, NVIDIA, etc)

    Hmm I remember Brian Hook writing about this in detail a LONG time ago but I can't find anything pre id on google.

    Anyhoo, I think the OpenGL SI (for which you can get the source code) has the rudiments of an ICD implementation rolled into it. It used to be separate but AFAIK the code bases were merged, so the starting point is SGIs code base unless you want to roll your own from scratch (and even then you need to learn how). From memory this was just simple unoptimized stuff showing the basics for some antiquated S3 card or other, but that may have changed.
    http://oss.sgi.com/projects/ogl-sample/

  8. #8
    Member Regular Contributor
    Join Date
    Nov 2000
    Location
    Belmont, CA
    Posts
    254

    Re: To ICD Authors (ATI, NVIDIA, etc)

    Dorbie -- I think it was in one of the VoodooExtreme's "Ask Grandmaster B" columns. Basically, he was talking about why you shouldn't overwrite system32/Opengl32.dll, otherwise its a "Dummies" version of the Gamasutra article.

    I've noticed that there are several OpenGL-relevant keys in the registry, but they also seem to vary by vendor. The most interesting thing in there is a path to the vendor-supplied library (e.g. nvoglnt.dll), but even figuring that part out is probably less than half the problem. These vendor supplied ICDs don't look very much like OpenGL32.DLL; they don't directly export the API calls.

    So the question rephrased less ambiguously would be: How does System32/OpenGL32.DLL remap the API entry points to the vendor supplied implementation? I would imagine "solving" this problem might require (at least) a combination of registry spying and code spelunking, but SOMEONE here has to know what's up, and directly. Ah well. I'll try it when I get back to work Monday.

    -Won

  9. #9
    Senior Member OpenGL Pro
    Join Date
    Feb 2002
    Location
    Bonn, Germany
    Posts
    1,652

    Re: To ICD Authors (ATI, NVIDIA, etc)

    Wouldn't Brian Paul and other mesa guys know about this?
    Maybe they even have an own forum (or at least they regularly hang out in one place)?

    At least you could have a peek at the mesa code, I'm ready to bet it has a build option for win32 ...

  10. #10
    Super Moderator OpenGL Guru dorbie's Avatar
    Join Date
    Jul 2000
    Location
    Bay Area, CA, USA
    Posts
    4,388

    Re: To ICD Authors (ATI, NVIDIA, etc)

    Won, he may have written there too, but the Hook stuff I'm thinking of goes way back when he had his own web page detailing the work involved in writing an ICD vs MCD and a bunch of D3D programming stuff also. This is not some simple, "don't mess with opengl32" article but quite detailed programming stuff. Anyway it's probably gone forever. I expect the SI is the best starting point now.

Posting Permissions

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