summaryrefslogtreecommitdiff
path: root/src/mesa/tnl/t_context.h
AgeCommit message (Collapse)Author
2009-10-22Revert "Store clipping distance for user clip planes as part of vertex ↵Ian Romanick
processing" This reverts commit f058b25881e08c9d89a33345e5c84e1357396932. This change is completely wrong in so many ways. When clip distances are generated as part of vertex processing, they must be interpolated to perform clipping. Geometric clipping goes right out the window.
2009-10-13Store clipping distance for user clip planes as part of vertex processingIan Romanick
Once the clipping distance is calculated and stored per vertex, the distances can be re-used when clipping is actually performed. This doesn't have any immediate benefit, but it paves the way for implementing gl_ClipDistance in vertex shaders and result.clip[] in vertex programs. This has not produces any oglconform regressions on my G31 system which uses software TNL. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com>
2009-09-09mesa: move call to init_c_cliptest() from enable.c to tnl module.Brian Paul
Fixed gallium build breakage.
2009-02-28mesa: move #include "bitset.h" out of mtypes.h - not needed in core MesaBrian Paul
2008-09-21mesa: move fixed function vertex program builder from tnl to core mesaKeith Whitwell
Also unify caching of fragment and vertex programs in shader/prog_cache.c` Brought across from gallium-0.2
2008-05-07fix refcounting bugs in tnl/tex program cachesBrian Paul
2007-07-04Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian
of -I flags.
2007-02-25remove unused VaryingPtrBrian
2007-02-22Merge branch 'origin' into glsl-compiler-1Brian
Conflicts: src/mesa/main/state.c src/mesa/shader/program.c src/mesa/shader/program.h src/mesa/shader/programopt.c src/mesa/shader/slang/slang_execute.c src/mesa/sources src/mesa/swrast/s_arbshader.c src/mesa/swrast/s_context.c src/mesa/swrast/s_span.c src/mesa/swrast/s_zoom.c src/mesa/tnl/t_context.c src/mesa/tnl/t_save_api.c src/mesa/tnl/t_vb_arbprogram.c src/mesa/tnl/t_vp_build.c src/mesa/tnl/t_vtx_eval.c
2006-12-15varying changesBrian
2006-10-31pickup structs from vbo.hKeith Whitwell
2006-10-29Changes for new vbo-building module.Keith Whitwell
- Removed all the old immediate, array and display list code. - Remove references to the old array_cache module. - Added a _tnl_draw_prims() entrypoint. - Added a simplified data import facility for converting non-floating point data as required. Checkpoint commit - trivial/tri works.
2006-09-25bring in active_sz mechanism from i965 driver. Fixes bug 8410Keith Whitwell
2006-07-19Several loops over the map1/2 evaluator arrays were incorrect.Brian Paul
There's only 16 evaluator maps. Define new _TNL_NUM_EVAL constant for those loops. Also, fix priority of GL_NV_vertex_program generic maps - they override the conventional maps. See bug 7564.
2006-06-29added _TNL_NUM_GENERICTilman Sauerbeck
2006-06-27Don't use nested struct definitions in tnl_clipspace_fastpath.Brian Paul
Make attr_type into a top-level type: tnl_attr_type See bug 7340.
2006-06-14A number of vertex buffer fields like NormalPtr, FogCoordPtr, etc are reallyBrian Paul
just aliases for members of the VB->AttribPtr[] array. Begin replacing FogCoordPtr with VB->AttribPtr[_TNL_ATTRIB_FOG], and similarly for NormalPtr, TexCoordPtr, PointSizePtr, etc.
2006-06-14Rename _TNL_ATTRIB_ATTRIBUTE* to _TNL_ATTRIB_GENERIC*Brian Paul
2006-04-25Put color index attribute into the 6th attribute slot.Brian Paul
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.
2006-04-25No longer alias generic vertex attribs with conventional attribs for ↵Brian Paul
GL_ARB_vertex_program.
2006-04-11More GLSL code:Michal Krol
- 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;
2005-12-06C++ fixes, mostly casts (Stephane Conversy)Brian Paul
2005-12-01Clean up clipping somewhatKeith Whitwell
- no need to update ClipMask on generated vertices - remove the VB->LastClipped value Line clipping algorithm changed and simplified somewhat. The old one was based on the triangle routine and probably wouldn't have recognized lines that were clipped down to nothing (ie culled, but not by a single plane).
2005-11-16Added error checking in _tnl_Begin to detect incomplete framebuffer.Brian Paul
Set new tnl->DiscardPrimitive field to true when such error is detected to discard the glBegin/End primitive when flushing. Added some new comments.
2005-11-01Add a NotifyInputChanges() callback so that drivers (particularly tnlKeith Whitwell
drivers) can track when the sizes or strides of incoming VB->AttribPtr arrays have changed.
2005-10-31Improve tnl program searching performance.Aapo Tahkola
2005-09-14Remove _tnl_MakeCurrent() and the unused ctx->Driver.MakeCurrent() callback.Brian Paul
2005-06-09Store compiled vertex program representations in a pointer in theKeith Whitwell
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.
2005-05-19Invalidate current fastpath on changes to attribute size or offset withinKeith Whitwell
the vertex. Use existing facilities to check for sse2 and enable when available. Turn on SSE/SSE2 codegen for t_vertex.c by default when USE_SSE_ASM is defined. Disable with "MESA_NO_CODEGEN=t".
2005-05-18Remove old t_vertex.c codegen infrastructure, tie in new code.Keith Whitwell
Currently disabled, can enable with MESA_EXPERIMENTAL=t.
2005-04-23Fix the worst problems with dangling edgeflag references inKeith Whitwell
display lists. These mainly arise from edgeflag being the only attribute no longer stored internally as a float and requiring various special case paths to accomodate it.
2005-04-22Simplify the pipeline_stage structureKeith Whitwell
- 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.
2005-02-28additional parenthesis in TNL_CONTEXT macro (Nicolai Haehnle)Brian Paul
2005-01-22Determine ahead of time whether a display list will include verticesKeith Whitwell
which have to be processed in the 'loopback' path. If so, send all vertices that way as the transition from playback->loopback has several problems.
2005-01-16make tnl_clipspace_attr->insert field const, to silence warningBrian Paul
2005-01-05Add a couple of hardwired fastpaths to t_vertex.c.Keith Whitwell
2004-07-01Rename the various function types in t_context.h to include a tnl_ prefix.Keith Whitwell
2004-06-30Add infrastructure for t_vertex.c codegen. Add an example driverKeith Whitwell
for this which spits out C code for the generated functions.
2004-05-10Add EXT_vertex_cull support to mesaKeith Whitwell
2004-05-04Fix minor warnings found with g++.Brian Paul
2004-03-31dynfn --> _tnl_dynfnKeith Whitwell
2004-03-29First round of codegen for t_vtx_api.c -- ie the Begin/Vertex/End code.Keith Whitwell
Enable with env var: MESA_CODEGEN=t.
2004-03-15Streamline the error path in VertexAttrib functions. Makes thingsKeith Whitwell
slightly easier for codegen.
2004-03-13Added some comments. Minor const, int->GLint type changes, etc.Brian Paul
2004-02-24turns out we probably need a _tnl_allow_pixel_fog() function afterallBrian Paul
2004-02-17A bit of an overhaul of the fog code.Brian Paul
glFogCoord didn't always work reliably. ARB fragment program fog options work now. Per-fragment fog computations are now perspective corrected.
2004-01-05Beef up t_vertex.c:Keith Whitwell
- 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.
2004-01-05Re-commit t_vertex.[ch] changes to fd.o server.Keith Whitwell
2004-01-01whitespace changes and new commentsBrian Paul
2003-12-09Call UpdateMaterials when they have changedKeith Whitwell