summaryrefslogtreecommitdiff
path: root/src/mesa/shader
AgeCommit message (Collapse)Author
2008-04-07mesa: call _mesa_remove_varying_reads() after compiling vertex shadersBrian
2008-04-07mesa: new _mesa_remove_varying_reads() functionBrian
We'll apply this function to GLSL vertex programs. In GLSL it's legal to read and write varying (output) vars in a vertex shader. But reading from an output register isn't supported by all hardware. This routine examines the vertex program for that condition and rewrites it to use temporary registers where needed.
2008-04-07mesa: added _mesa_insert_instructions()Brian
Also, use new _mesa_free_instructions() in a few places.
2008-04-07mesa: added _mesa_free_instructions()Brian
2008-04-04mesa: no longer combine vertex/fragment shader parameters/uniformsBrian
GLSL Vertex and fragment shaders now have independent parameter buffers. A new gl_uniform_list is used to keep track of program uniforms and where each uniform is located in each shader's parameter buffer. This makes better use of the space in each buffer and simplifies shader linking.
2008-04-04mesa: new functions for managing list/index of uniformsBrian
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-31fix parsing bug involving comments at the end of ARB v/f programsMarkus Amsler
2008-03-27consolidate some parsing functions that were pretty much identical for ↵Brian
vertex/fragment programs cherry-picked from master
2008-03-27mesa: misc sync-up with masterBrian
2008-03-27raise GL_INVALID_OPERATION if glProgramString compilation failsBrian
cherry-picked from master
2008-03-27Fix the compile of disabled DEBUG_PARSING code.Brian
cherry-picked from master
2008-03-27make sure state token values are fully initializedBrian
cherry-picked from master
2008-03-27added program_error2() function for better error reportingBrian
cherry-picked from master
2008-03-27Fix state.texgen parsing error (bug 12313).Brian
Replace *(*inst++) with *(*inst)++ in a few places. Cherry-picked from master.
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-25mesa: append fog instructions after parsing if a fog option is setBrian Paul
Drivers don't have to worry about it then.
2008-03-25mesa: when negating scalar src args, use NEGATE_XYZW, not NEGATE_XBrian Paul
This makes things easier on the back-end when generating GPU code.
2008-03-22use ctx->Driver.DeleteProgram() in a few more placesBrian
2008-03-17only set InputsRead bit if input is really usedMarkus Amsler
2008-03-14mesa: init tmpNode to zerosBrian Paul
2008-03-14mesa: fix emit_clamp() so that we don't use an output register as temporaryBrian Paul
IR_CLAMP is decomposed into OPCODE_MIN+OPCODE_MAX. Allocate a temporary register for the intermediate value so we don't inadvertantly use an output register (which are write-only on some GPUs).
2008-03-13mesa: fix (harmless?) assignment in assertKeith Whitwell
2008-03-12mesa: set SamplersUsed bitmask when parsing ARB fragment programsBrian
2008-02-27mesa: set input read only on successJerome Glisse
2008-02-25Remove files of unsupported build systems.José Fonseca
2008-01-18s/varible/variable/Brian
2008-01-18set param type to PROGRAM_CONSTANT when parsing immediatesBrian
2008-01-16use NEGATE_X/Y/Z/W tokensBrian
2008-01-16clean-up swizzle fields in fog code, fix NegateBaseBrian
2008-01-16copy UsesKill state in _mesa_combine_programs()Brian
2008-01-01free program cachesBrian
2008-01-01fix a memleakBrian
2007-12-07Move _mesa_init_glsl_driver_functions() into shader_api.cBrian
This allows making a bunch of functions static, and removes a state tracker dependency on driverfuncs.c
2007-10-31fix type for Samplers fieldBrian
2007-10-31alloc caches for fixed-func vertex/fragment progsBrian
2007-10-30fix InputsRead bug in _mesa_combine_programs()Brian
2007-10-30special-case KIL/KIL_NVBrian
2007-10-30more additions for COLOR_MATRIX, etcBrian
2007-10-30add state vars for color matrix, pixel transfer scale&biasBrian
2007-10-30Program cache functions.Brian
Generic version of cache code from texenvprogram.c and t_vp_build.c Not used by those files just yet, will also be used for pixel_transfer programs.
2007-10-30check for NULL ptr in _mesa_print_parameter_list()Brian
2007-10-30make _mesa_combine_programs() params constBrian
2007-10-30Added _mesa_combine_programs() for concatenating two programs.Brian
2007-10-30added _mesa_combine_parameter_lists()Brian
2007-10-29Rename 'mms-config.' to 'mms.config'.Michal Krol
It looks like Windows does not like filenames ending with a dot, in effect renaming it to 'mms-config'.
2007-10-26turn off debug outputBrian
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-10-24add to gitBrian
2007-10-24Implement gl_PointCoord attribute for GLSL fragment shaders.Brian
Contains the normalized fragment position within a point sprite.