summaryrefslogtreecommitdiff
path: root/src/mesa/tnl
AgeCommit message (Collapse)Author
2006-04-14Replace ctx->Const.MaxTextureUnits w/ ctx->Const.MaxTexture[Coord/Image]UnitsBrian Paul
in various places. Note that ctx->Texture.CurrentUnit needs to be tested against Coord/Image limits when referenced, not just in glActiveTexture().
2006-04-13silence minor warningsBrian Paul
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;
2006-04-06Rename CLIP_ALL_BITS to CLIP_FRUSTUM_BITS to reflect the fact that the valueBrian Paul
only includes the 6 frustum bits, not the user-clip plane bit, nor the vertex cull bit.
2006-04-06Fix line clipping bug 6512.Brian Paul
This fix is to discard the line if both dot products are negative.
2006-04-02Coverity #476: Avoid walking off the end of ->vtx.attrsz, it's declared toAdam Jackson
be _TNL_ATTRIB_MAX long so that's not a valid index (woo zero based indexing). This code still looks wrong though, the asymmetry between _tnl_copy_to_current and _tnl_copy_from_current has me worried.
2006-03-21GLSL fixes:Michal Krol
- generate error on NULL pointers in glShaderSourceARB; - reinstall program object, if current, in glLinkProgramARB; - vertex and fragment shaders are optional in program object; - floor asm was wrongly computed for x86 back-end; - allow for (void) idiom in function prototypes; - all fixed-state uniforms are updated; - local variable initializers are working; - implement texture* and shadow* functions for vertex processor; - generate error if too many arguments in general constructor; - trim unused data in general constructor; - struct r-value field select was badly relocated; Changes: - add derived state gl_fog_attrib::_Scale; - add derived state gl_light::_CosCutoffNeg;
2006-03-03fix up the emit_func list in the experimental arbprogram sse code.Roland Scheidegger
2006-03-02Add position_invarient supportKeith Whitwell
2006-02-27More GLSL code:Michal Krol
- add x86 code generator; - add full support for uniforms in ARB_shader_objects; - add assembly instruction: global_addr; - reorganize #includes; - built-in uniforms accessed by index, rather than by name; - add some entries to x86sse rtasm; - add configurations to VC6 projects: 'Release x86' and 'Debug x86'; - #define SLANG_X86 active only on VC6 x86 builds; - introduce code export table for a shader; - remove GNU license from the noise library;
2006-02-22include proper header file, remove local extern declarationsBrian Paul
2006-02-21 Committing in .Jouk Jansen
Update OpenVMS makefiles Modified Files: Mesa/src/mesa/shader/slang/descrip.mms Mesa/src/mesa/swrast/descrip.mms Mesa/src/mesa/tnl/descrip.mms ----------------------------------------------------------------------
2006-02-18More GLSL code.Michal Krol
- general constructors allowed; - implement noise functions (from Stefan Gustavson - thanks!) - cosmetic stuff.
2006-02-15Get arbfslight demo running.Michal Krol
2006-02-13Add ARB_vertex_shader stage just before render stage.Michal Krol
If enabled, all other stages, except render, are disabled.
2006-02-02use calloc instead of malloc so try_codegen field is initialized to zero ↵Brian Paul
(bug 5791)
2006-02-02add some assertions to check emit_func[] table validityBrian Paul
2005-12-08do away with 'long long' usageBrian Paul
2005-12-08use 64-bit typedefs for portabilityKarl Schultz
2005-12-06C++ fixes, mostly casts (Stephane Conversy)Brian Paul
2005-12-05Add guard before calling ctx->Driver.BindProgramKeith Whitwell
2005-12-01Call ProgramStringNotify after creating tnl programs.Keith Whitwell
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-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