On 22/11/06, Stefan Dösinger <[EMAIL PROTECTED]> wrote:
I noticed that loadVertexData already disables stream sources that aren't
available in the current draws, while loadNumberedArrays doesn't. Do we need
unloadVertexData at all? Or are non-drawing operations or drawStridedSlow
affected by arrays?
Well, the issue is when you switch between fixed function and shader
based drawing. Eg, if an array from a previous fixed function draw
primitive call is still active while drawing with a shader, you can
potentially access the fixed function array beyond its bounds. That
was the actual issue that prompted me to write the patch, and it
turned out to also fix the 3DMark03 VBO performance regression.

Another issue which you might run into with you state management work
is that at least on nVidia hardware the fixed function and shader
arrays are aliases for eachother.

Background is that I'm atm working on using dirtification to manage stream
sources. So far the state management is progressing nicely, what is missing
atm are Shaders, re-enabling register combiners and fixing regressions which
slipped in(hl2 and bf1942). Then optimizations :-)
Something that occured to me yesterday after we talked on IRC is that
we should probably use glPushClientAttrib / glPopClientAttrib to do
the disabling after we're done drawing.


Reply via email to