| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
ctx->_MaintainTnlProgram is set
|
|
|
|
|
|
| |
Update a lot of loops, conditionals to use the _TNL_FIRST/LAST_* values
instead of specific vertex attributes.
Remove the EdgeFlagv function from the GLvertexformat struct.
|
|
|
|
|
|
|
|
|
|
|
|
| |
- use macros to access and modify render inputs bit-field;
- un-alias generic vertex attributes for ARB vertex calls;
- use MAX_VERTEX_PROGRAM_ATTRIBS (NV code) or MAX_VERTEX_ATTRIBS
(ARB code) in place of VERT_ATTRIB_MAX;
- define VERT_ATTRIB_GENERIC0..15 for un-aliased vertex
attributes for ARB_vertex_shader;
- fix generic attribute index range check in arbprogparse.c;
- interface GLSL varyings between vertex and fragment shader;
- use 64-bit optimised bitset (bitset.h) for render inputs;
|
| |
|
|
|
|
| |
driver.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
| |
|
| |
|
|
|
|
| |
1015696)
|
|
|
|
|
|
|
| |
program is enabled AND the currently bound program is valid.
Check _Enable instead of Enable to prevent things from blowing up
when someone calls glEnable(GL_VERTEX_PROGRAM_ARB) without actually
defining a program.
|
| |
|
|
|
|
| |
Enable with env var: MESA_CODEGEN=t.
|
| |
|
|
|
|
|
|
| |
glFogCoord didn't always work reliably.
ARB fragment program fog options work now.
Per-fragment fog computations are now perspective corrected.
|
|
|
|
|
|
|
|
|
|
|
| |
- cope with input vectors with size less than that of the emitted
attribute.
- cope with vertices with 'holes' inside and between vertices.
Fix calculation of tnl->render_inputs to work with fp programs.
Mirror VB->PointSizePtr in VB->AttribPtr so that it can work with t_vertex.c.
Transition swrast_setup/ to use t_vertex.c to build swrast vertices.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Fixed some vertex array / vertex program glitches with glDrawElements.
Fixed some fragment program runtime bugs.
Non-trivial Cg programs are running now.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
1. Remove all.h and PC_HEADER junk.
2. Rolled mem.c and mem.h into imports.c and imports.h
3. Include imports.h instead of mem.h
Restore _mesa_create/initialize_context() to be like they were in 4.0.4
New wrappers for a few std C functions: _mesa_atoi(), _mesa_strstr(), etc.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Fix GLuint compare bugs
Fix RESET_STIPPLE calls
|
|
|
|
|
|
| |
Moved vertex program hash table into shared context state.
Implemented reference counting for vertex programs.
Replaced tnl "ProjectedClip" with "Ndc" (normalized device coordinates).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clear that these are owned by t_vb_render.c.
Make swrast_setup opaque - it now hooks itself directly into
tnl->Driver.Render.*. Add a _swsetup_Wakeup() call that does this.
Update X11 (tested), osmesa and FX drivers for this change.
FX compiles but is probably broken as the changes there are large. It was the
only remaining driver that used the internal _swsetup_ functions for
interp and copy_pv. This usage has been replaced with code from the DRI
tdfx driver.
|
| |
|
|
|
|
|
|
|
| |
to glVertex() type calls. Allows driver-supplied tnl modules to avoid
fallback on glCallList inside begin/end pairs.
Still a little buggy...
|
|
|
|
| |
cassettes. Fixes problem with isosurf/compiled-array-elt/strips.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Core Mesa provides a neutral tnl module that verifies the currently
module before installing the tnl function pointers in a lazy fashion.
It also records which tnl functions have been swapped out, and only
restores these when tnl modules themselves are swapped.
Fallback strategies:
Drivers set a bitmask of dangerous stage changes. When such a state
change occurs, the driver should restore the neutral tnl module via
_mesa_restore_exec_vtxfmt(). The neutral tnl module will call
_mesa_update_state(), followed by ctx->Driver.ValidateTnlModule() if the
validation bitmask matches the new state bitmask. The driver should
call _tnl_wakeup_exec() if it can no longer handle the current state,
which will revert to the default tnl module. In this case, previous
vertices should be replayed as required (depending on the current
primitive) after the new tnl module is installed.
If the driver uses chooser functions for any part of the tnl module,
these should generally be reinstalled as part of the fallback to the
neutral tnl module. For example, if the lighting state changes, a
driver might fall back to the neutral tnl module, verify that the
current lighting state can be handled, and use the chooser function to
pick the most efficient implementation of the current lighting state.
It is up to the drivers to detect and handle fallback cases caused by
tnl function calls themselves (such as glTexCoord4f* if the current tnl
module can't handle projected textures, for example).
|