summaryrefslogtreecommitdiffstats
path: root/src/mesa/shader/arbprogparse.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'origin' into glsl-compiler-1Brian2007-03-091-0/+1
|\ | | | | | | | | | | Conflicts: src/mesa/main/context.c
| * Propogate UsesKill information.Keith Whitwell2007-03-041-0/+1
| |
* | fix fog breakageBrian2007-02-231-4/+2
| |
* | replace GLint with gl_state_indexBrian2007-02-231-7/+11
| |
* | updated debug codeBrian2007-02-221-210/+18
| |
* | Undo some STATE_POINT/FOG changes. Max length of state token array is now 5.Brian2007-02-221-4/+2
| |
* | Merge branch 'origin' into glsl-compiler-1Brian2007-02-221-2/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * optimize generated vertex programs a bitRoland Scheidegger2007-02-091-1/+1
| | | | | | | | | | | | | | | | Use new internal state to avoid per-vertex normalization of static spot direction vector. Use internal state for simpler per-vertex fog computations (MAD instead of SUB/MUL for linear fog, EX2 instead of POW for EXP/EXP2 fog). Simplify point size calc (2 MADs instead of MOV, MUL, MUL, DP3), and while there fix it up (RSQ instead of RCP). All untested...
| * Replace __extension__ with LONGSTRING.Brian2006-12-141-1/+1
| |
* | more minor changes to STATE_ indexingBrian2007-02-211-3/+9
| |
* | adjustments to STATE_ token layout/format so token[1] is always the array indexBrian2007-02-211-19/+28
| |
* | silence uninitialized var warningBrian2007-02-011-2/+2
| |
* | clean up a bunch of program parameter stuffBrian2007-01-091-3/+3
| |
* | Moved NumTexInstructions, NumTexIndirections, etc. into gl_program sinceBrian2007-01-091-6/+6
| | | | | | | | they can now apply to vertex programs.
* | move TexturesUsed[] into gl_program since vertex programs/shaders can use ↵Brian2007-01-041-1/+1
| | | | | | | | textures nowadays
* | Updated includes.Brian2006-12-141-1/+3
|/
* Add a size parameter to _mesa_add_unnamed_constant() andBrian Paul2006-11-151-1/+1
| | | | | _mesa_add_named_constant() to indicate vector size (1, 2, 3 or 4). Always 4 for now...
* #define LONGSTRING __extension__ in imports.h and use it to silence gccBrian Paul2006-11-151-9/+6
| | | | warnings about long string literals.
* Change _mesa_init_instruction() to initialize an array of instructions.Brian Paul2006-10-291-3/+3
|
* Program instructions are initialized before parsing so no need to setBrian Paul2006-10-291-7/+1
| | | | | | Abs, NegateAbs, CondMask and CondSwizzle fields to defaults here. CondMask was getting mis-set. Removing the incorrect assignment improves fragment program speed by 15%.
* for VERTEX_ATTRIB_WEIGHT, use break, not returnBrian Paul2006-09-061-1/+2
|
* Hack for Warcraft (bug 8060): allow 'vertex.weight' to be referenced inBrian Paul2006-09-051-0/+10
| | | | | vertex program, even though it's not really supported. Results will be undefined, but Warcraft doesn't actually use the attribute.
* fix typo in enable_parser_extensions(): s/point_parameters/vertex_blend/Brian Paul2006-09-051-1/+1
|
* Consolidate common case of _mesa_set_program_error() followed by _mesa_error()Brian Paul2006-09-051-248/+172
| | | | | | in new program_error() function. Add const qualifiers in many places. Reorder some debug code to prevent referencing free'd memory.
* Check that we don't try to reference more than one target of a texture unit.texmem_0_2_20060912Brian Paul2006-08-301-1/+17
| | | | | For example, referencing both "texture[0], 2D" and "texture[0], CUBE" in one program is an error.
* fix initialization of native resource usage of vertex/fragment programsRoland Scheidegger2006-08-301-0/+10
|
* use _mesa_alloc_instructions()Brian Paul2006-08-251-2/+1
|
* update MAX_INSTRUCTIONS limitBrian Paul2006-08-241-1/+4
|
* use _mesa_realloc_instructions()Brian Paul2006-08-241-6/+6
|
* Some structure renaming. Prefix vertex/fragment-related structs withBrian Paul2006-07-201-3/+3
| | | | "gl_" to match other structs.
* propagate errors from parse_generic_attrib_num in parse_attrib_binding (-> ↵Tilman Sauerbeck2006-06-281-2/+4
| | | | don't segfault when you're trying to access invalid generic attributes
* don't do the check for >= MAX_VERTEX_PROGRAM_ATTRIBS twice, it's already ↵Tilman Sauerbeck2006-05-291-6/+0
| | | | done in parse_generic_attrib_num()
* generic attribute 0 wasn't handled correctly (Jesse Allen)Brian Paul2006-05-291-0/+8
|
* fix second memory leak (bug 5557)Brian Paul2006-04-281-4/+5
|
* fix first memory leak (bug 5557)Brian Paul2006-04-281-0/+5
|
* No longer alias generic vertex attribs with conventional attribs for ↵Brian Paul2006-04-251-1/+6
| | | | GL_ARB_vertex_program.
* More GLSL code:Michal Krol2006-04-111-2/+2
| | | | | | | | | | | | - 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;
* move NumNativeAlu/TexInstruction assignments (Ewald Snel)Brian Paul2006-03-291-6/+3
|
* ARL dst idx was undefined.Aapo Tahkola2006-03-221-1/+2
|
* C++ fixes, mostly casts (Stephane Conversy)Brian Paul2005-12-061-5/+5
|
* Make Saturate a 2-bit field again, renamed to SaturateMode with threeBrian Paul2005-11-201-32/+32
| | | | possible values: SATURATE_OFF, SATURATE_ZERO_ONE and SATURATE_PLUS_MINUS_ONE.
* remove incorrect castBrian Paul2005-11-191-1/+1
|
* Remove the _mesa_parse_arb_vertex/fragment_program() functions intoBrian Paul2005-11-191-107/+247
| | | | | | | 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.
* Move stuff common to vertex/fragment_program into the base class, including:Brian Paul2005-11-121-17/+15
| | | | | | Instructions, InputsRead, OutputsWritten, and Parameters. Also, added debug functions: _mesa_print_instruction(), _mesa_print_program_parameters() and revamp _mesa_print_program().
* remove unneeded #includesBrian Paul2005-11-081-8/+2
|
* Unify vertex/fragment program instuctions.Brian Paul2005-11-051-86/+85
| | | | Based on patch by Ian (#4967) but also unify instruction opcodes.
* Streamline code generation by using a fixed size instruction buffer inBrian Paul2005-11-031-65/+17
| | | | arb_program struct.
* fix typo, minor clean-upsBrian Paul2005-11-031-5/+5
|
* Rename FRAG_OUTPUT_* tokens to FRAG_RESULT_* to match vertex program conventionBrian Paul2005-11-021-3/+3
|
* Several fp and vp tweaks:Keith Whitwell2005-11-011-0/+3
| | | | | | | | | | | | | | | | | | | | | | - 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.