summaryrefslogtreecommitdiff
path: root/src/mesa/main/texenvprogram.c
AgeCommit message (Collapse)Author
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-08s/_mesa_debug_fp_inst/_mesa_print_program/Brian Paul
2005-11-05Unify vertex/fragment program instuctions.Brian Paul
Based on patch by Ian (#4967) but also unify instruction opcodes.
2005-11-02Rename FRAG_OUTPUT_* tokens to FRAG_RESULT_* to match vertex program conventionBrian Paul
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-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-07Populate arb_fp_instruction negate field correctly.Keith Whitwell
2005-09-19additional wrapper updates, bug 4468Brian Paul
2005-09-16use mesa import wrappers, bug 4468Brian Paul
2005-09-15Replace GLuint with GLbitfield where appropriate. Also replace GLuintBrian Paul
with GLboolean in a few places.
2005-09-08Keep NumTemporaries uptodate.Keith Whitwell
Make sure oC alpha is populated when separate_specular enabled.
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-19replace fprintf() calls with _mesa_problem()Brian Paul
2005-07-11Cache texenv programs to avoid repeated compilation (Ben Skeggs)Keith Whitwell
2005-05-23Detect use of disabled textures as tex_env_crossbar sources.Keith Whitwell
2005-05-23Support ARB_texture_env_crossbar. Changes the way programs areKeith Whitwell
generated somewhat, with all TEX instructions now emitted at the head of the program.
2005-05-23Restore the negate() function.Keith Whitwell
Add Ben Skegg's ATI_texture_env_combine3 support.
2005-05-17don't include strings.hBrian Paul
2005-05-16Deal better with indirection and indirection accounting, developedKeith Whitwell
with Ben Skeggs.
2005-05-12new MESA_DEBUG option: disassemKeith Whitwell
2005-05-11Fix glean/conform problems. Don't generate so much output whenKeith Whitwell
disassembling.
2005-05-11Fix logic for allocating texture temporaries (Ben Skeggs).Keith Whitwell
Rename temp_flag, tex_temp_flag to make this clearer. Respect ctx->Const.MaxFragmentProgramTemps limit.
2005-05-10Double-buffer generated instructions and only notify driver when theKeith Whitwell
generated program differs from the previous one.
2005-05-10Double-buffer generated instructions and only notify driver when theKeith Whitwell
generated program differs from the previous one.
2005-05-10Better driver notification on changes.Keith Whitwell
2005-05-10Temporary fix - delete and recreate texenvprogram so that driversKeith Whitwell
notice when it changes.
2005-05-10Fix texenv segfault. Reported by Ben Skeggs.Keith Whitwell
2005-05-10Try not to use the same temp reg as a TXP destination more than once,Keith Whitwell
as this also constitutes a texture indirection. Reported by Ben Skeggs.
2005-05-09Use driver functions to create TexEnvProgram, TnlProgramKeith Whitwell
2005-05-04Add a facility to route all rasterization through a fragment programKeith Whitwell
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.
2005-04-29Maintain a fragment program for current texturing state.Keith Whitwell