summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/texenvprogram.c
Commit message (Collapse)AuthorAgeFilesLines
* fix using a tmp without asking for oneJerome Glisse2006-01-241-0/+1
|
* fix broken get_half & get_zeroAapo Tahkola2006-01-241-4/+4
|
* use GLbitfield instead of GLuintBrian Paul2005-12-141-6/+3
|
* silence warning, bug 5318Brian Paul2005-12-121-0/+2
|
* C++ fixes, mostly casts (Stephane Conversy)Brian Paul2005-12-061-1/+1
|
* Make Saturate a 2-bit field again, renamed to SaturateMode with threeBrian Paul2005-11-201-1/+1
| | | | possible values: SATURATE_OFF, SATURATE_ZERO_ONE and SATURATE_PLUS_MINUS_ONE.
* additional clean-ups and improvementsBrian Paul2005-11-191-21/+38
|
* Bunch of little fixes:Brian Paul2005-11-191-35/+31
| | | | | | | | Fix mem leaks in _mesa_TexEnvProgramCacheDestroy(). Check if ctx->Driver.BindProgram is non-null before calling. s/unsigned/GLuint/ Use MAX_INSTRUCTIONS instead of magic 100, check program length after it's made. Use _mesa_init_instruction() instead of _mesa_memset().
* Remove the _mesa_parse_arb_vertex/fragment_program() functions intoBrian Paul2005-11-191-1/+0
| | | | | | | 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.
* Reduce stderr noise.Aapo Tahkola2005-11-181-2/+2
|
* Move stuff common to vertex/fragment_program into the base class, including:Brian Paul2005-11-121-10/+9
| | | | | | Instructions, InputsRead, OutputsWritten, and Parameters. Also, added debug functions: _mesa_print_instruction(), _mesa_print_program_parameters() and revamp _mesa_print_program().
* s/_mesa_debug_fp_inst/_mesa_print_program/Brian Paul2005-11-081-1/+1
|
* Unify vertex/fragment program instuctions.Brian Paul2005-11-051-30/+30
| | | | Based on patch by Ian (#4967) but also unify instruction opcodes.
* 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-20/+29
| | | | | | | | | | | | | | | | | | | | | | - 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.
* Re-org and clean-up of vertx/fragment program limits (instructions,Brian Paul2005-11-011-4/+4
| | | | | | | 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.
* Populate arb_fp_instruction negate field correctly.Keith Whitwell2005-10-071-1/+1
|
* additional wrapper updates, bug 4468Brian Paul2005-09-191-6/+6
|
* use mesa import wrappers, bug 4468Brian Paul2005-09-161-4/+4
|
* Replace GLuint with GLbitfield where appropriate. Also replace GLuintBrian Paul2005-09-151-1/+1
| | | | with GLboolean in a few places.
* Keep NumTemporaries uptodate.Keith Whitwell2005-09-081-0/+7
| | | | Make sure oC alpha is populated when separate_specular enabled.
* Follow suggestion by Aapo Tahkola to fix giant memory leak from forgetting ↵Vladimir Dergachev2005-08-061-0/+1
| | | | to free the key when entry was already found (presumably a common case).
* replace fprintf() calls with _mesa_problem()Brian Paul2005-07-191-4/+5
|
* Cache texenv programs to avoid repeated compilation (Ben Skeggs)Keith Whitwell2005-07-111-224/+435
|
* Detect use of disabled textures as tex_env_crossbar sources.Keith Whitwell2005-05-231-8/+18
|
* Support ARB_texture_env_crossbar. Changes the way programs areKeith Whitwell2005-05-231-41/+119
| | | | | generated somewhat, with all TEX instructions now emitted at the head of the program.
* Restore the negate() function.Keith Whitwell2005-05-231-5/+33
| | | | Add Ben Skegg's ATI_texture_env_combine3 support.
* don't include strings.hBrian Paul2005-05-171-2/+0
|
* Deal better with indirection and indirection accounting, developedKeith Whitwell2005-05-161-33/+53
| | | | with Ben Skeggs.
* new MESA_DEBUG option: disassemKeith Whitwell2005-05-121-1/+1
|
* Fix glean/conform problems. Don't generate so much output whenKeith Whitwell2005-05-111-26/+36
| | | | disassembling.
* Fix logic for allocating texture temporaries (Ben Skeggs).Keith Whitwell2005-05-111-15/+24
| | | | | Rename temp_flag, tex_temp_flag to make this clearer. Respect ctx->Const.MaxFragmentProgramTemps limit.
* Double-buffer generated instructions and only notify driver when theKeith Whitwell2005-05-101-1/+0
| | | | generated program differs from the previous one.
* Double-buffer generated instructions and only notify driver when theKeith Whitwell2005-05-101-8/+21
| | | | generated program differs from the previous one.
* Better driver notification on changes.Keith Whitwell2005-05-101-7/+10
|
* Temporary fix - delete and recreate texenvprogram so that driversKeith Whitwell2005-05-101-5/+10
| | | | notice when it changes.
* Fix texenv segfault. Reported by Ben Skeggs.Keith Whitwell2005-05-101-0/+10
|
* Try not to use the same temp reg as a TXP destination more than once,Keith Whitwell2005-05-101-2/+40
| | | | | as this also constitutes a texture indirection. Reported by Ben Skeggs.
* Use driver functions to create TexEnvProgram, TnlProgramKeith Whitwell2005-05-091-1/+10
|
* Add a facility to route all rasterization through a fragment programKeith Whitwell2005-05-041-152/+102
| | | | | | | | | | | which is automatically generated to match the current texture environment state. Introduces a new value ctx->FragmentProgram._Active which is true when either _Enabled is true or there is such a fragment program ready to run. To test out on a driver running the software rasterizer, set MESA_TEX_PROG=t in the environment. It goes without saying that performance is lower for the software rasterizer in this mode.
* Maintain a fragment program for current texturing state.Keith Whitwell2005-04-291-0/+772