As a new guy in graphics, I want to know to how the OpenGL ES driver (the low level driver provided by the GPU vendors) interpret the direct OpenGL commands/functions and then pass to the GPU. Does the driver re-organize the commands into some data structures and put into memory while the GPU continuously gets this data from memory whenever it is available?
That’s a matter for each individual implementation. OpenGLES is just a specification for how programs talk to the driver…it says nothing about how it’s implemented under the hood.
Thank you, Steve.
Yes, I understand the OpenGL ES is only an API standard. But I am also interested in how the API is implemented in the GPU driver when the hardware interaction is involved. Any information on that? Thanks.
On a PC with an nVidia or ATI card, commands and data are probably built up into a command buffer that is DMA’ed over to the GPU when it’s free.
But on an Intel chip (which doesn’t have a hardware vertex processor) - the commands are probably executed locally on the CPU, as the user calls them - and because there is typically no separate GPU memory, the graphics chip is probably told to read data directly out of main memory to do rasterization and pixel shading.
Cellphones may be different yet again…the Sony PlayStation has a separate layer of processors that do vertex calculations and build up a command stream for the GPU. Different machines work different ways - there is no one specific mechanism.