summaryrefslogtreecommitdiff
path: root/src/mesa/tnl
AgeCommit message (Collapse)Author
2005-11-24Use _mesa_exec_free for fp->func.Keith Whitwell
2005-11-22reference bug 5131 in comment in _tnl_free_vertices()Brian Paul
2005-11-22disable freeing of fp->func, see comment (bug 5131)Brian Paul
2005-11-22Make sure tnl->_DoVertexFog is kept uptodate. Fixes fog in i915Keith Whitwell
driver.
2005-11-19Remove the _mesa_parse_arb_vertex/fragment_program() functions intoBrian Paul
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.
2005-11-18Fix typo causing secondary color not to work properly.Aapo Tahkola
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-16change an assertionBrian Paul
2005-11-16Replace GL_POLYGON+1 with PRIM_OUTSIDE_BEGIN_ENDBrian Paul
2005-11-12Move stuff common to vertex/fragment_program into the base class, including:Brian Paul
Instructions, InputsRead, OutputsWritten, and Parameters. Also, added debug functions: _mesa_print_instruction(), _mesa_print_program_parameters() and revamp _mesa_print_program().
2005-11-08This patch adds the missing NV_vertex_program2 and NV_vertex_program3Ian Romanick
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).
2005-11-05s/_mesa_debug_vp_inst/_mesa_print_program/Brian Paul
2005-11-05use _mesa_num_inst_src_regs() and _mesa_opcode_string()Brian Paul
2005-11-05Unify vertex/fragment program instuctions.Brian Paul
Based on patch by Ian (#4967) but also unify instruction opcodes.
2005-11-05remove unneeded #includesBrian Paul
2005-11-04just pass ctx to do_ndc_cliptest() rather than stuffing it in the ↵Brian Paul
arb_vp_machine struct
2005-11-03s/15/VERT_RESULT_MAX/Brian Paul
2005-11-02Remove some ghost code and adjust things a bit.Aapo Tahkola
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-11-01Several fp and vp tweaks:Keith Whitwell
- 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.
2005-11-01Fix segmentation fault in _tnl_ProgramCacheDestroy().Aapo Tahkola
2005-11-01Re-org and clean-up of vertx/fragment program limits (instructions,Brian Paul
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.
2005-10-31Need more than 200 instructions.Aapo Tahkola
2005-10-31Improve tnl program searching performance.Aapo Tahkola
2005-10-29added some assertions to catch unexpected swizzle values in cvp_emit_arg(), ↵Brian Paul
currently fails sometimes
2005-10-29reduced swizzle commentBrian Paul
2005-10-29added warning about use of REG_SCRATCHBrian Paul
2005-10-29fix errors in RoughApproxPower(), do_LIT(), _tnl_program_string()Brian Paul
2005-10-28Keith's fixes for RSW and XPD (need temporaries)Brian Paul
2005-10-28include tnl.h to silence warningBrian Paul
2005-10-28Added assert that result != arg0 in do_RSW. This currently fails and needs ↵Brian Paul
fixing.
2005-10-28TNL module needs to implement ctx->Driver.ProgramStringNotify() functionBrian Paul
so that calls to glProgramStringARB() to specify a new program causes the TNL-attached data to get recomputed.
2005-10-10fixed constant fogcoord bug (#4729)Brian Paul
2005-10-07Fix a number of point size attenuation problems.Brian Paul
Move size clamping into the rasterization function.
2005-09-23 Committing in .Jouk Jansen
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 ----------------------------------------------------------------------
2005-09-19additional wrapper updates, bug 4468Brian Paul
2005-09-16use mesa import wrappers, bug 4468Brian Paul
2005-09-14Remove _tnl_MakeCurrent() and the unused ctx->Driver.MakeCurrent() callback.Brian Paul
2005-08-25removed GL_HP_occlusion_test extensionBrian Paul
2005-08-12added FREXPF() macro (bug 4060)Brian Paul
2005-08-10Check for prim/vertex store non-null before messing with refcounts.Keith Whitwell
2005-08-09Decrement the context's refcounts on part-used storage structs onKeith Whitwell
context destroy. Fixes memory leak.
2005-08-06Follow suggestion by Aapo Tahkola to fix giant memory leak from forgetting ↵Vladimir Dergachev
to free the key when entry was already found (presumably a common case).
2005-07-22some GLuint idx -> GLint idx changesBrian Paul
2005-07-22Make the vertex program source register Index field a signed int sinceBrian Paul
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.
2005-07-18Wrap every place that accesses a dispatch table with a macro. A new script-Ian Romanick
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
2005-07-15Check for null program->Parameters pointer in validate_vertex_program().Brian Paul
GL_NV_vertex_program programs can't directly reference GL state so this pointer is always NULL.
2005-07-15added commentsBrian Paul
2005-07-13Use the LDEXPF wrapper macro.Keith Whitwell
2005-07-13Wrap RESTORE_FPU/RND_NEG_FPU declarations with check for USE_SSE_ASM.Keith Whitwell