Age | Commit message (Collapse) | Author |
|
|
|
|
|
This is similar to what r300 does inside the driver, but I've added it as
a generic option since it seems most hardware will want it.
Fixes piglit nv-init-zero-reg.vpfp and nv-init-zero-addr.vpfp.
|
|
This helps let drivers treat NV_vp like ARB_vp.
|
|
There's really no need for two negation fields. This came from the
GL_NV_fragment_program extension. The new, unified Negate bitfield applies
after the absolute value step.
|
|
The code in prog_print.c can be used instead.
|
|
This was never fully fleshed out and hasn't been used.
|
|
This is another step toward removing a whole bunch of -I flags from
the cc commands. Still need to address driver code...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixes broken "OPTION NV_position_invariant".
|
|
|
|
|
|
"gl_" to match other structs.
|
|
Before, we were using GL_TRUE/GL_FALSE in a few places.
Note: only the SWZ instruction can negate individual components.
|
|
specifies a 2/3/4-compontent swizzle suffix, SrcReg->Swizzles is just ORed
against the new component values, without resetting it first.
Attached patch makes tests/vptest2 pass.
From Tilam Sauerbeck bug 6673
|
|
|
|
|
|
|
|
|
|
Instructions, InputsRead, OutputsWritten, and Parameters.
Also, added debug functions: _mesa_print_instruction(),
_mesa_print_program_parameters() and revamp _mesa_print_program().
|
|
|
|
Based on patch by Ian (#4967) but also unify instruction opcodes.
|
|
|
|
- Renumber VERT_RESULT_* values so that they match the
numbers of the corresponding FRAG_ATTRIB_ values.
- Add ctx->VertexProgram._Current and FragmentProgram._Current
values which point to either the current client-supplied
program if enabled, or otherwise to the current mesa-internal
program. Thus this program is always the correct one for
the current state, providing that the mesa flags to turn on
automatic generation are enabled.
- Add callbacks to ctx->Driver.BindProgram() in texenvprogram.c
and t_vp_build.c so that the driver knows when the generated
program changes. This is cleaner than trying to code all the
possible _NEW_* flags into the driver, and more precise as well.
- Add a UsesKill flag to identify fragment programs with that
instruction, as these can require special treatment.
- Move the FRAG_OUTPUT values to mtypes.h, near to similar defn's.
|
|
Use new _mesa_init_fp/vp_instruction() function to initialize instructions.
|
|
relative addressing can be negative.
Change some GLuint indexes to GLint in the t_vp_build.c file.
Added PROGRAM_UNDEFINED token for initializing the register File field to
avoid a gcc 4.0 warning.
|
|
use 64-bit pointers and 32-bit longs. So, operations like casting pointers
to unsigned long and back to pointer won't work. glheader.h now
includes files to define uintptr_t, which should instead be used for
this sort of operation. It is an integer type that is the same size
as a pointer.
|
|
representations by switching to packed structures for registers and
instructions.
|
|
|
|
Basically, this lets you put a "PRINT 'mesage', register;" statement in a
vertex program to aid in debugging.
|
|
1015696)
|
|
|
|
Some need to be set per-vertex, other per-primitive. Cleared that up.
Only need to init temp/result registers if executing an NV vertex program.
|
|
|