[Mesa-dev] Mesa/Gallium overall design

Luca Barbieri luca at luca-barbieri.com
Mon Apr 12 00:31:34 PDT 2010


> Do what r300g does: Delay VBO submission, and make a choice at render
> time as to whether immediate mode is going to pay off in performance.

nv50 and unpushed work on nvfx already do that, but that only works
well when the user specifies a pointer to an array of vertex
attributes.

If instead the user uses glBegin/glVertex/glEnd, etc. immediate mode
means that you write that data immediately directly on the GPU
pushbuffer, as special commands, instead of writing it in a separate
buffer, and clearly you can't delay this decision without defeating
the whole point of it.

nVidia cards actually have BEGIN/END FIFO commands, as well as
commands to set specific vertex attributes in several formats, in a
way that almost directly maps to OpenGL (in addition to all the other
usual submission modes)

The only problem is that with the current driver architecture,
primitives may need to be split, which makes the driver implementation
less trivial, but still possible.


More information about the mesa-dev mailing list