Age | Commit message (Collapse) | Author |
|
arbprogparse.c and remove arbvertparse.[ch] and arbfragparse.[ch].
Clean up quite a bit of the arb parsing code.
Rewrite parser extension code to avoid a mess of string operations every
time the parser was used.
|
|
|
|
Set new tnl->DiscardPrimitive field to true when such error is
detected to discard the glBegin/End primitive when flushing.
Added some new comments.
|
|
|
|
|
|
Instructions, InputsRead, OutputsWritten, and Parameters.
Also, added debug functions: _mesa_print_instruction(),
_mesa_print_program_parameters() and revamp _mesa_print_program().
|
|
instructions to the various internal tables. It does not add support for
them to the parser nor does it add support for them to the program
interpreter.
It also corrects some errors in the comments in program_instruction.h.
This patch breaks the instruction union in t_vb_arbprogram.h. The opcode
field in that union was only 6 bits. When there were only 59+3 instructions
that worked fine. However, this patch increases the base instruction count
to 69. This requires 7 bits. The problem is that increasing the opcode
width to 7 bits increases the size of instruction::rsw to 33 bits. I've
increased the size of the union to 64-bit, but this is just a temporary hack
(and probably breaks the build on some systems).
|
|
|
|
|
|
Based on patch by Ian (#4967) but also unify instruction opcodes.
|
|
|
|
arb_vp_machine struct
|
|
|
|
|
|
drivers) can track when the sizes or strides of incoming VB->AttribPtr
arrays have changed.
|
|
- 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.
|
|
|
|
temporaries, parameters, etc).
glGetProgramivARB() now returns all the right things.
Updated i915 and r300 code to initialize program native limits and
current program's native instruction/temporary/etc counts.
|
|
|
|
|
|
currently fails sometimes
|
|
|
|
|
|
|
|
|
|
|
|
fixing.
|
|
so that calls to glProgramStringARB() to specify a new program causes the
TNL-attached data to get recomputed.
|
|
|
|
Move size clamping into the rasterization function.
|
|
1) change compilation on VMS to use IEEE floating points
2) one more problem with _mesa_sprintf solved
Modified Files:
Mesa/docs/README.VMS Mesa/progs/demos/descrip.mms
Mesa/progs/tests/descrip.mms Mesa/progs/util/descrip.mms
Mesa/progs/xdemos/descrip.mms Mesa/src/glu/mesa/descrip.mms
Mesa/src/glu/sgi/descrip.mms Mesa/src/glut/glx/descrip.mms
Mesa/src/mesa/array_cache/descrip.mms
Mesa/src/mesa/drivers/common/descrip.mms
Mesa/src/mesa/drivers/osmesa/descrip.mms
Mesa/src/mesa/drivers/x11/descrip.mms
Mesa/src/mesa/glapi/descrip.mms Mesa/src/mesa/main/descrip.mms
Mesa/src/mesa/main/texobj.c Mesa/src/mesa/math/descrip.mms
Mesa/src/mesa/shader/descrip.mms
Mesa/src/mesa/shader/grammar/descrip.mms
Mesa/src/mesa/shader/slang/descrip.mms
Mesa/src/mesa/swrast/descrip.mms
Mesa/src/mesa/swrast_setup/descrip.mms
Mesa/src/mesa/tnl/descrip.mms
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context destroy. Fixes memory leak.
|
|
to free the key when entry was already found (presumably a common case).
|
|
|
|
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.
|
|
generated file, called src/mesa/glapi/dispatch.h, is added. This file
contains three macros for each API function. It contains a GET, a SET, and
a CALL. Each of the macros take a pointer to the context and a pointer to
the dispatch table.
In several threads on mesa3d-dev we discussed replacing _glapi_add_entrypoint
with a new function called _glapi_add_dispatch. For this discussion, the
important difference between the two is that the caller of _glapi_add_dispatch
does *not* know what the dispatch offset will be at compile time. Because of
this callers need to track the dispatch offset returned by
_glapi_add_dispatch.
http://marc.theaimsgroup.com/?t=111947074700001&r=1&w=2
The downside is that driver code then has to access the dispatch table two
different ways. It accesses it using structure tags (e.g., exec->Begin) for
functions with fixed offsets and via a remap table (e.g., exec[
remap->NewExtensionFunction ]) for functions without fixed offsets. Yuck!
Using the macros allows both types of functions to be accessed
identically. If a driver needs to set a pointer for Begin, it does
'SET_Begin(ctx, exec, my_begin_function)'. If it needs to set a pointer
for NewExtensionFunction, it does 'SET_NewExtensionFunction(ctx, exec,
my_NewExtensionFunction_function)'. Furthermore, if at some point in
the future a static offset is assigned for NewExtensionFunction, only
the macros need to change (instead of every single place that accesses a
table for that function).
This code differs slightly from the originally posted patches in that the
CALL, GET, and SET marcos no longer take a context pointer as a parameter.
Brian Paul had suggested that the remap table could be stored as a global
since it would be set at CreateScreen time and would be constant for all
contexts. This change reflects that feedback.
http://marc.theaimsgroup.com/?t=112087194700001&r=1&w=2
|
|
GL_NV_vertex_program programs can't directly reference GL state so this
pointer is always NULL.
|
|
|
|
|
|
|
|
opcodes. When enabled via environment vars, gears runs and almost
looks right but other apps are still quite buggy.
|
|
|
|
|
|
testing the flags field.
Move definition of all the MAT_FLAGs into the m_matrix.c file since they're
now private.
|