Otherwise, the clip/interp code was finding VB->EdgeFlag to be non-null and
reading/writing it when the memory may have been freed earlier in free_space().
This fixes several VTK segfaults/failures reported by Brad King @ Kitware.
This way we have a hw context so that we can take the hardware lock.
Also, at this point, AIGLX isn't locked with the X server context as it is
at screen creation.
use VertexProgram._Current instead of VertexProgram.Current in a few more places.
Only fixup fogc and psiz in case this is really a nv program (others are fine
if undefined), and fix this case up so the values actually get written.
OK, _all_ extensions that might get enabled by the driver need to be in the
card_extensions[] list. driInitExtensions() is called at least twice: first
during screen creation, then once for each context that's created.
The first call sets up the dispatch table. The second call just sets the
extension enable/disable flags.
Previously, this limited us to 12 temp regs for vertex programs. Many vertex
shaders could exceed that. This forces us to stop using t_vb_arbprogram.c
for now because of its particular register indexing scheme. Need to increase
bits allocated for register indexing, etc.
It could only be called from XMesaCopySubBuffer but this function is not used
by XFree86.
It seems that XMesaPutImageHelper would handle sub-images but never got
finished. Proper sub-image helpers should be written if need be.
This uses xmesa.h as the GLcore interface and avoids adding an explicit GLcore
inteface which would not be a proper interface anyway.
It puts the declarations of the three functions specific for XMesa/XFree86 in
xmesa.h, we can push them down to xmesa_xf86.h if hiding behind XFree86Server
ifdef's is not enough.