vertex_program struct.
Allow switching between regular and vertex_program implementations
of fixed function TNL with the MESA_TNL_PROG environment var
(previously this required recompilation).
Ensure program compilation only references program data, not the
wider context. This means that compiled programs only need to be
invalidated when the program string changes, not on other state
changes.
and only active when _TNL_FIXED_FUNCTION_PROGRAM is defined *and*
the MESA_EXPERIMENTAL environment variable is set...
Works for the arbfplight demo at least.
- Expand operand argument specifiers so that all registers and
parameters can be referenced directly. Remove old PAR/PRL
instructions.
- No 3 operand instructions, translate MAD -> MUL, ADD. (No room for
3 full operands in instruction struct).
- Translate SWZ instructions into 1 or 2 reduced swizzles at compile
time.
- Add hardwired code for moving input and output values to/from the
register file. Drop old INx, OUT instructions.
- remove input/output fields, input tracking removed.
- remove state fields, the validate function now called
on every statechange.
- add an explicit 'create' function.
Add in code to build vertex program to implement current t&l state. Still
disabled, but turn on with a #define in t_vp_build.h.