summaryrefslogtreecommitdiff
path: root/src/mesa/shader/shader_api.c
AgeCommit message (Collapse)Author
2008-05-14mesa: fix InfoLog memleak, misc sync with masterBrian Paul
2008-05-14mesa: glUniform(location==-1) is not an errorBrian Paul
2008-05-14fix some additional program refcounting bugsBrian Paul
cherry-picked from master
2008-05-06gallium: implement full reference counting for vertex/fragment programsBrian
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...
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-03-22use ctx->Driver.DeleteProgram() in a few more placesBrian
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-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-08-07Naive implementation of IF/ELSE/ENDIF.michal
Handle TGSI labels correctly. Enhance MESA opcode info queries.
2007-07-13fix shader/info string length queries (bug 11588)Jan Dvorak
2007-07-04Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian
of -I flags.
2007-05-09Check that texture units/samplers specified with glUniform1i() are legal.Brian
2007-04-21free shProg->Attributes in _mesa_free_shader_program_data()Brian
2007-04-18Start fixing some issues with uniform variables and their types.Brian
2007-04-18Fix some bugs related to querying active uniforms.Brian
2007-04-18fix error strings, add a sanity checkBrian
2007-04-18Remove bad assertions, decrement NumShaders in _mesa_detach_shader().Brian
Fixes crashes w/ Brad King's depth peeling test.
2007-04-18s/GL_SHADER_PROGRAM/GL_SHADER_PROGRAM_MESA/ (a Mesa-specific token)Brian
2007-04-18Replace _mesa_parameter_longest_name() with _mesa_longest_parameter_name().Brian
The later takes a type parameter so we can match uniforms or attributes/inputs. Used by the GL_ACTIVE_ATTRIBUTE_MAX_LENGTH and GL_ACTIVE_UNIFORM_MAX_LENGTH queries. Fixes problem reported by Brad King in VTK.
2007-04-12disable debug printfsBrian
2007-04-12New _mesa_reference_shader/program() function to consolidate refcounting.Brian
Note that (unlike texture objects), shader handles remain valid (in the hash table) after glDeleteShader/Program() if the refcount isn't zero.
2007-04-11fix invalid error detection problem in _mesa_bind_attrib_location(), bug 10602Brian
2007-03-26fix mem leak, add commentsBrian
2007-03-24Free shader-related context state: _mesa_free_shader_state()Brian
2007-03-23Add the ability to generate programs that doesn't use condition codes.Brian
ctx->Shader.EmitCondCodes determines if we use condition codes. If not, IF statement uses first operand's X component as the condition. Added OPCODE_BRK0, OPCODE_BRK1, OPCODE_CONT0, OPCODE_CONT1 to handle the common cases of conditional break/continue.
2007-03-13more bug fixing, error checkingBrian
2007-03-13fix a number of issues in _mesa_uniform()Brian
2007-03-09fix _mesa_uniform_matrix() transpose bugBrian
2007-03-07check for null program ptrs in _mesa_uniform()Brian
2007-02-26Add EmitHighLevelInstructions, EmitComments booleans to gl_shader_state.Brian
These control code generation options. May be overridden by drivers, debuggers, etc.
2007-02-24Remove unneeded _Fragment/VertexShaderPresent fields, update comments.Brian
2007-02-16s/_slang_link2/_slang_link/Brian
2007-02-03added FLUSH_VERTICES() in _mesa_use_program()Brian
2007-02-02Only glUniform1i() can be used to set sampler uniforms. Generate error ↵Brian
otherwise.
2007-01-30fix _mesa_get_uniform_location() so it uses the given program handleBrian
2007-01-23fix g++ warnings/errorsBrian
2007-01-10checkpoint: codegen for global vars w/ initializersBrian
2007-01-10assorted code clean-upsBrian
2007-01-09get rid of STATE_USER_ATTRIB/STATE_AUTO_ATTRIBBrian
2007-01-09clean up a bunch of program parameter stuffBrian
2007-01-09Implement vertex attribute binding.Brian
Users can set explicit binding with glBindAttribLocation(), otherwise the linker will allocate generic attribute slots.
2007-01-05Checkpoint glsl compiler work: sampler uniforms now implemented, linked ↵Brian
properly.
2007-01-04finish some loose ends in _mesa_uniform()Brian
2007-01-04Fix some incorrect GL error values. Reorganize _mesa_compile_shader() code.Brian
2006-12-21comment about uniformsBrian
2006-12-20Uniform matrix support.Brian
Implement _mesa_uniform_matrix() Support for program parameters/uniforms with more than 4 elements. Store 4x4 matrices in column-major order in registers. Update mat mul built-in functions accordingly.
2006-12-20code re-orgBrian
2006-12-20Fix shader object reference counting and hash table deallocation.Brian
2006-12-19Clean-up and re-org of the main GLSL object types.Brian
Use the gl_shader struct as it should be. Renamed gl_linked_program to gl_shader_program. Store both shaders and programs in the same hash table and use the Type field to distinguish them.
2006-12-19Overhaul of GLSL API functions, dispatching, etc.Brian