summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/texenvprogram.c
Commit message (Collapse)AuthorAgeFilesLines
* texenvprogram: Mark textures using ARB_shadow as ShadowSamplersNicolai Haehnle2008-06-141-2/+6
| | | | | | | Since ARB_fragment_program and friends are defined to ignore the setting of the GL_TEXTURE_COMPARE_FUNC parameter, we have to explicitly enable the shadow comparison by marking the texture unit in ShadowSamplers when appropriate.
* [texenvprogram] Fix refcounting-related memory leak.Nicolai Haehnle2008-06-021-1/+2
| | | | | | | | All newly created programs have RefCount == 1, but the fragment program cache added an additional reference in cache_item, with the result being that none of the programs were ever freed. Solve the problem by not creating the additional reference in cache_item.
* fix refcounting bugs in tnl/tex program cachesBrian Paul2008-05-071-26/+33
|
* replace // comment with /* */ (bug 14916)Brian2008-03-091-1/+1
|
* i965: use _Current pointer instead of Current pointer.Xiang, Haihao2008-02-291-1/+2
| | | | fix double free issue(bug#14710). It also corrects glsl/bitmap demo behavior.
* fix bug with generated fragment programs if vertex shader is activeRoland Scheidegger2008-02-151-2/+2
| | | | | | | When generating a fragment program from fixed function, checking texUnit->_ReallyEnabled is not sufficient, need texUnit->Enabled too since the former also represents texture enables from an active vertex shader.
* Merge branch '965-glsl'Zou Nan hai2007-10-261-1/+1
|\ | | | | | | | | | | | | Conflicts: src/mesa/drivers/dri/i965/brw_sf.h src/mesa/drivers/dri/i965/intel_context.c
| * Only vertex program fix, bypass tnl vertex programZou Nan hai2007-10-081-1/+1
| |
* | properly init dst reg's CondMask/Swizzle fieldsBrian2007-10-231-2/+2
| |
* | bump up MAX_INSTRUCTIONS and add an assertion to catch emitting too many ↵Brian2007-10-231-4/+7
| | | | | | | | instructions
* | Brian's fix for bug9829Xiang, Haihao2007-08-171-1/+1
|/
* Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian2007-07-041-4/+4
| | | | of -I flags.
* fix GL_DOT3_RGBA texture combiner mode in generated fragment programs (bug ↵Roland Scheidegger2007-07-031-1/+1
| | | | #11030)
* merge of glsl-compiler-1 branchBrian2007-03-261-40/+58
|\
| * Undo some changes to _mesa_UpdateTexEnvProgram(). Fixes broken i915 texturing.Brian2007-02-241-3/+9
| |
| * s/GLint/gl_state_index/, length is now 5 not 6Brian2007-02-231-9/+7
| |
| * fix g++ warnings/errorsBrian2007-01-231-2/+3
| |
| * Moved NumTexInstructions, NumTexIndirections, etc. into gl_program sinceBrian2007-01-091-9/+9
| | | | | | | | they can now apply to vertex programs.
| * Lots of assorted changes for new GLSL compiler backend.Brian2006-12-151-26/+40
| | | | | | | | New datatypes, constants, variables.
* | use _mesa_copy_instructions()Brian2007-03-221-4/+3
| |
* | fixes for C++ warnings/errorsBrian2007-01-231-2/+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...
* remove debug codeBrian Paul2006-10-301-7/+0
|
* Rather than always allocating 100 instructions, put instructions into aBrian Paul2006-10-291-18/+42
| | | | | temporary buffer, then copy into a malloc'd array of the correct size. According to Glean texCombine, we never need more than 21 instructions.
* Change _mesa_init_instruction() to initialize an array of instructions.Brian Paul2006-10-291-1/+1
|
* Fix some breakage after the PROGRAM_UNDEFINED changeAlan Hourihane2006-08-101-2/+2
|
* Some structure renaming. Prefix vertex/fragment-related structs withBrian Paul2006-07-201-8/+9
| | | | "gl_" to match other structs.
* remove redundant 'const'Brian Paul2006-05-301-1/+1
|
* Add const qualifiers in a number of places.Brian Paul2006-05-231-11/+12
|
* In cache_item(), there was sizeof(void) expression.Brian Paul2006-05-231-1/+1
| | | | Replace void *key parameter with const struct state_key *
* memory usage fixes for glean/conform, use a better hash functionKeith Whitwell2006-05-221-29/+49
|
* Fix typoKeith Whitwell2006-05-221-1/+1
|
* Better caching for texenv programs.Keith Whitwell2006-05-221-15/+60
| | | | Initialize some values correctly.
* casts to fix some -pedantic warningsBrian Paul2006-04-131-4/+4
|
* fix #6072 (Keith Whitwell)Aapo Tahkola2006-03-281-12/+17
|
* 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.