OpenGL mechanics tutorials?
Anybody know of any good sites on the actual mechanics of the OpenGL implementation (apple's)? I'm particularly interested on when exactly buffers get submitted to hardware, when they get updated, and what happens when. I've looked over the OpenGL pipeline, but it lacked specifics on when things happen in terms of calls made by your program.
So... Anybody got appropriate links or knowledge sitting around?
So... Anybody got appropriate links or knowledge sitting around?
---Kelvin--
15.4" MacBook Pro revA
1.83GHz/2GB/250GB
commands handled by the video card are queued in buffers, buffers are submitted when full (or possibly when sufficient time has elapsed with no new commands being added?), hardware processes the buffers asynchronously.
glFlush causes the current buffer to be submitted (regardless of whether it's ready or not). This is Badâ„¢.
glFinish causes a glFlush, and then a CPU wait for that buffer's commands to be processed by the GPU. This is Very Bad™®.
Some GL calls implicitly flush or finish during operation. The worst culprits are glReadPixels and other calls that get pixels back from the GL, like glGetTexImage2D.
glFlush causes the current buffer to be submitted (regardless of whether it's ready or not). This is Badâ„¢.
glFinish causes a glFlush, and then a CPU wait for that buffer's commands to be processed by the GPU. This is Very Bad™®.
Some GL calls implicitly flush or finish during operation. The worst culprits are glReadPixels and other calls that get pixels back from the GL, like glGetTexImage2D.
I have not come across any in-depth description of the internal, HW-specific, workings of Apple's GL. I think the only way to get details is to rub shoulders with the driver folk.
Why do you want to know this, though? Any details you find out could well change entirely with the next round of cards...
Why do you want to know this, though? Any details you find out could well change entirely with the next round of cards...
I just want a better understanding.
Particularly... When you have a vertex array pointer, and you do a drawelements; when does the data get sent to the card? If you change some of the data, when does that get updated? Does it send everytime you do a drawelements? What about VAR and fencing? How about VBO?
Particularly... When you have a vertex array pointer, and you do a drawelements; when does the data get sent to the card? If you change some of the data, when does that get updated? Does it send everytime you do a drawelements? What about VAR and fencing? How about VBO?
---Kelvin--
15.4" MacBook Pro revA
1.83GHz/2GB/250GB
normal array data is sent to the card synchronously during the DrawElements call. CVA'd arrays begin a DMA at that time. VAR and VBO it probably happens at buffer modification time, though it could wait until draw time. Either way it's a DMA.
Possibly Related Threads...
| Thread: | Author | Replies: | Views: | Last Post | |
| OpenGL Tutorials with video | Taxxodium | 14 | 5,102 |
May 15, 2008 07:00 PM Last Post: FlamingHairball |
|
| Beginner-Intermediate level OpenGL tutorials | Jones | 7 | 3,983 |
Jan 9, 2006 12:40 AM Last Post: AnotherJake |
|
| tutorials for setting up a window in opengl cocoa | vbuser1338 | 6 | 4,047 |
Mar 14, 2005 02:16 PM Last Post: maaaaark |
|
| OpenGL 2d tutorials???? | menace690 | 13 | 7,197 |
Jan 24, 2004 06:43 PM Last Post: menace690 |
|
| 2d game with opengl tutorials | roka-tarat | 3 | 9,255 |
May 1, 2002 03:30 PM Last Post: Jeff Binder |
|

