summaryrefslogtreecommitdiff
path: root/src/mesa/shader/program.c
AgeCommit message (Collapse)Author
2008-10-08mesa: in _mesa_combine_programs() take new STATE_CURRENT_ATTRIB color into ↵Brian Paul
account Commit 1680ef869625dc1fe9cf481b180382a34e0738e7 changed the texenv program to get color from a state register instead of a constant-valued vertex attribute. This broke program concatenation (so glDraw/CopyPixels broke). Now check if the second program get's color from a constant register and handle that case appropriately.
2008-08-12mesa: set point stateBrian Paul
2008-07-24mesa: Prefix main includes with dir to avoid conflicts.José Fonseca
Some of the headers in src/mesa/main have pretty common names which easily conflict with third-party code, e.g. config.h
2008-07-21mesa: refactor: move _mesa_Bind/Gen/DeleteProgram() to arbprogram.cBrian
No API-level functions now in program.c.
2008-06-24mesa: Use appropriate unsigned/signed, float/integer types.José Fonseca
2008-05-19fix tempReg test in _mesa_combine_programs()Brian Paul
2008-05-14fix some additional program refcounting bugsBrian Paul
cherry-picked from master
2008-05-07gallium: implement full reference counting for vertex/fragment programsBrian Paul
Use _mesa_reference_vert/fragprog() wherever we assign program pointers. Fixes a memory corruption bug found with glean/api2 test. Another memory bug involving shaders yet to be fixed... Picked from gallium-0.1
2008-04-07mesa: added _mesa_insert_instructions()Brian
Also, use new _mesa_free_instructions() in a few places.
2008-04-04gallium: make sure to set the SamplersUsed field for bitmap/drawpixels shadersBrian Paul
Also, make sure that field is copied/updated in the program clone and combine functions. Without this we weren't getting SAMP declarations in the TGSI shaders.
2008-03-25mesa: fix some issues in _mesa_combine_programs()Brian Paul
Use a temporay register to connect outputs of first program to inputs of second program. Also, fix bug in replace_registers(): didn't search/replace DstReg.
2008-03-22use ctx->Driver.DeleteProgram() in a few more placesBrian
2008-01-16copy UsesKill state in _mesa_combine_programs()Brian
2008-01-01free program cachesBrian
2007-10-31alloc caches for fixed-func vertex/fragment progsBrian
2007-10-30fix InputsRead bug in _mesa_combine_programs()Brian
2007-10-30make _mesa_combine_programs() params constBrian
2007-10-30Added _mesa_combine_programs() for concatenating two programs.Brian
2007-10-26Re-implement GLSL texture sampler variables.Brian
GLSL sampler variables indicate which texture unit to use for TEX instructions. Previously, this was baked into the fragment/vertex program and couldn't be readily changed once set. Now, SamplerUnits[] array indicates which texture unit is to be used for each sampler variable. These values are set with glUniform1i(). This is extra state that must be passed to the fragment/vertex program executor at runtime.
2007-07-24call ctx->Driver.NewProgram() instead of _mesa_new_program()Brian
2007-04-21fix instruction comment codeBrian
2007-03-24free prog->Attributes in _mesa_delete_program()Brian
2007-03-22use _mesa_copy_instructions()Brian
2007-02-09move GL_MESA_program_debug funcs to prog_debug.cBrian
2007-01-09Implement vertex attribute binding.Brian
Users can set explicit binding with glBindAttribLocation(), otherwise the linker will allocate generic attribute slots.
2007-01-09Moved NumTexInstructions, NumTexIndirections, etc. into gl_program sinceBrian
they can now apply to vertex programs.
2007-01-04move TexturesUsed[] into gl_program since vertex programs/shaders can use ↵Brian
textures nowadays
2006-12-19check for null Parameters ptr in _mesa_clone_program()Brian
2006-12-14Move many functions into new files.Brian
2006-12-14New functions for cloning programs and parameter lists.Brian
2006-12-13Checkpoint of work for new GLSL compiler back-end. Lots of assorted changes.Brian
2006-11-23fix several program-related bugs (bug 9136)Brian Paul
2006-11-17add STATE_INTERNAL_DRIVER, etc (Rune Petersen)Brian Paul
2006-11-16disable yesterday's _mesa_add_named_constant() change for nowBrian Paul
2006-11-15Add a size parameter to _mesa_add_unnamed_constant() andBrian Paul
_mesa_add_named_constant() to indicate vector size (1, 2, 3 or 4). Always 4 for now...
2006-11-15Add new _mesa_lookup_parameter_constant() to search for a GLfloat4 constantBrian Paul
in a parameter list. Use it in _mesa_add_named_constant() and _mesa_add_unnamed_constant() to avoid duplication of identical constants.
2006-11-02Rename _mesa_IsProgram() to _mesa_IsProgramARB() to avoid collision with theBrian Paul
OpenGL 2.0 function of the same name.
2006-10-31minor clean-ups, simplifications and new commentsBrian Paul
2006-10-30Move gl_vertex_program_machine struct out of mtypes.h and put into nvvertexec.h.Brian Paul
Massage nvvertexec.c code to work more like s_nvfragprog.c - another step toward unifying vertex/fragment program execution.
2006-10-29Change _mesa_init_instruction() to initialize an array of instructions.Brian Paul
2006-10-28special case END in _mesa_print_instruction()Brian Paul
2006-10-10a step toward moving run-time vertex program state out of GLcontextBrian Paul
2006-10-10Move the fp_machine struct into s_nvfragmprog.c since (except for programBrian Paul
debug) it's only used there.
2006-09-20Add a new internal program parameter value STATE_TEXRECT_SCALE whichKeith Whitwell
provides 1/width and 1/height of the active texture, useful for implementing ARB_texture_rectangle support on hardware which only supports ARB_npot-style texturing.
2006-09-20Export _mesa_print_alu_instruction() to allow drivers to roll theirKeith Whitwell
own debug code for programs with driver-private opcodes. Remove redundant loop in _mesa_num_inst_src_regs().
2006-08-25Free vertex program TnlData, if any. Fixes a mem leak.Brian Paul
2006-08-25Rearrange glBindProgram() code to do all error checking before changingBrian Paul
the binding. Prevent a potential dangling pointer error. SF Bug 1544507.
2006-08-25added _mesa_alloc_instructions() utility functionBrian Paul
2006-08-24Cg tries to bind NV fragment programs to the GL_FRAGMENT_PROGRAM_ARB targetBrian Paul
with glBindProgramARB(). I guess the GL_ARB_fragment_program specification allows that, but Mesa didn't. Relaxed the check with a new predicate function: compatible_program_targets().
2006-08-24Added _mesa_realloc_instructions() utility function.Brian Paul
Fixed/updated comments for parameter list functions.