summaryrefslogtreecommitdiffstats
path: root/src/mesa/shader
Commit message (Collapse)AuthorAgeFilesLines
* fix some additional program refcounting bugsBrian Paul2008-05-143-9/+6
| | | | cherry-picked from master
* mesa: minor fixes in _mesa_free_shader_program_data() and _mesa_link_program()Brian Paul2008-05-071-0/+4
| | | | | | From master: Set shProg->NumShaders = 0 after freeing program's list of shaders. Set _NEW_PROGRAM in _mesa_link_program() to fix a state validation bug.
* gallium: implement full reference counting for vertex/fragment programsBrian Paul2008-05-075-47/+101
| | | | | | | | 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
* gallium: fix potential divide by zero in fog computationBrian Paul2008-04-231-3/+5
| | | | It's legal for Fog.Start == Fog.End and conformance testing does so.
* mesa: added internal post color matrix scale/bias varsBrian Paul2008-04-162-0/+14
|
* fix GL_ARB_texture_rectangle breakageBrian Paul2008-04-141-3/+3
|
* mesa: define #extension GL_ARB_texture_rectangleDavid Flynn2008-04-141-0/+4
|
* mesa: call _mesa_remove_varying_reads() after compiling vertex shadersBrian2008-04-071-0/+15
|
* mesa: new _mesa_remove_varying_reads() functionBrian2008-04-072-2/+96
| | | | | | | | 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.
* mesa: added _mesa_insert_instructions()Brian2008-04-072-10/+52
| | | | Also, use new _mesa_free_instructions() in a few places.
* mesa: added _mesa_free_instructions()Brian2008-04-072-0/+20
|
* mesa: no longer combine vertex/fragment shader parameters/uniformsBrian2008-04-042-267/+233
| | | | | | | 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.
* mesa: new functions for managing list/index of uniformsBrian2008-04-042-0/+248
|
* gallium: make sure to set the SamplersUsed field for bitmap/drawpixels shadersBrian Paul2008-04-041-0/+2
| | | | | 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.
* fix parsing bug involving comments at the end of ARB v/f programsMarkus Amsler2008-03-312-6/+6
|
* consolidate some parsing functions that were pretty much identical for ↵Brian2008-03-271-152/+71
| | | | | | vertex/fragment programs cherry-picked from master
* mesa: misc sync-up with masterBrian2008-03-271-3/+3
|
* raise GL_INVALID_OPERATION if glProgramString compilation failsBrian2008-03-271-1/+1
| | | | cherry-picked from master
* Fix the compile of disabled DEBUG_PARSING code.Brian2008-03-271-1/+1
| | | | cherry-picked from master
* make sure state token values are fully initializedBrian2008-03-271-1/+1
| | | | cherry-picked from master
* added program_error2() function for better error reportingBrian2008-03-271-47/+60
| | | | cherry-picked from master
* Fix state.texgen parsing error (bug 12313).Brian2008-03-271-5/+12
| | | | | | Replace *(*inst++) with *(*inst)++ in a few places. Cherry-picked from master.
* mesa: fix some issues in _mesa_combine_programs()Brian Paul2008-03-251-2/+21
| | | | | | 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.
* mesa: append fog instructions after parsing if a fog option is setBrian Paul2008-03-251-0/+11
| | | | Drivers don't have to worry about it then.
* mesa: when negating scalar src args, use NEGATE_XYZW, not NEGATE_XBrian Paul2008-03-251-6/+6
| | | | This makes things easier on the back-end when generating GPU code.
* use ctx->Driver.DeleteProgram() in a few more placesBrian2008-03-222-4/+4
|
* only set InputsRead bit if input is really usedMarkus Amsler2008-03-171-3/+5
|
* mesa: init tmpNode to zerosBrian Paul2008-03-141-0/+1
|
* mesa: fix emit_clamp() so that we don't use an output register as temporaryBrian Paul2008-03-141-3/+12
| | | | | | 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).
* mesa: fix (harmless?) assignment in assertKeith Whitwell2008-03-131-1/+1
|
* mesa: set SamplersUsed bitmask when parsing ARB fragment programsBrian2008-03-121-1/+4
|
* mesa: set input read only on successJerome Glisse2008-02-271-2/+3
|
* Remove files of unsupported build systems.José Fonseca2008-02-253-182/+0
|
* s/varible/variable/Brian2008-01-181-6/+6
|
* set param type to PROGRAM_CONSTANT when parsing immediatesBrian2008-01-181-0/+2
|
* use NEGATE_X/Y/Z/W tokensBrian2008-01-161-4/+4
|
* clean-up swizzle fields in fog code, fix NegateBaseBrian2008-01-161-11/+10
|
* copy UsesKill state in _mesa_combine_programs()Brian2008-01-161-0/+7
|
* free program cachesBrian2008-01-011-0/+2
|
* fix a memleakBrian2008-01-011-0/+1
|
* Move _mesa_init_glsl_driver_functions() into shader_api.cBrian2007-12-072-157/+99
| | | | | This allows making a bunch of functions static, and removes a state tracker dependency on driverfuncs.c
* fix type for Samplers fieldBrian2007-10-311-1/+1
|
* alloc caches for fixed-func vertex/fragment progsBrian2007-10-311-0/+4
|
* fix InputsRead bug in _mesa_combine_programs()Brian2007-10-301-2/+6
|
* special-case KIL/KIL_NVBrian2007-10-301-1/+19
|
* more additions for COLOR_MATRIX, etcBrian2007-10-301-0/+12
|
* add state vars for color matrix, pixel transfer scale&biasBrian2007-10-302-0/+19
|
* Program cache functions.Brian2007-10-302-0/+246
| | | | | 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.
* check for NULL ptr in _mesa_print_parameter_list()Brian2007-10-301-0/+3
|
* make _mesa_combine_programs() params constBrian2007-10-302-2/+4
|