Age | Commit message (Collapse) | Author |
|
|
|
|
|
Some of the headers in src/mesa/main have pretty common names which
easily conflict with third-party code, e.g. config.h
|
|
|
|
|
|
|
|
Fix incorrect uniform/attribute size query results.
Add missing error checking for glUniform, glUniformMatrix params
Fix an array size/allocation error.
|
|
|
|
|
|
The old implementation could overwrite the caller's param buffer.
|
|
The old implementation could overwrite the caller's param buffer.
|
|
program isn't linked
|
|
program isn't linked
|
|
|
|
|
|
|
|
If the 'shader' parameter is wrong, need to either generate GL_INVALID_VALUE
or GL_INVALID_OPERATION. It depends on whether 'shader' actually names a
'program' or is a totally unknown ID.
There might be other cases to fix...
cherry-picked from master
|
|
If the 'shader' parameter is wrong, need to either generate GL_INVALID_VALUE
or GL_INVALID_OPERATION. It depends on whether 'shader' actually names a
'program' or is a totally unknown ID.
There might be other cases to fix...
|
|
|
|
|
|
|
|
|
|
This allows making a bunch of functions static, and removes a state
tracker dependency on driverfuncs.c
cherry-picked from gallium-0.1
|
|
|
|
|
|
The refcounting bug was causing a memleak (unfreed programs).
The old parameter list sharing is not needed since the change in how
uniforms are handled.
|
|
|
|
The refcounting bug was causing a memleak (unfreed programs).
The old parameter list sharing is not needed since the change in how
uniforms are handled.
|
|
|
|
Previously, the shader linker combined the uniforms used by the vertex and
fragment shaders into a combined set of uniforms. This made the implementation
of glUniform*() simple, but was rather inefficient otherwise. Now each shader
gets its own set of uniforms (no more modelview matrix showing up in the
fragment shader uniforms, for example).
cherry-picked by hand from gallium-0.1 branch
|
|
|
|
cherry-picked from master
|
|
|
|
Use _mesa_reference_vert/fragprog() wherever we assign program pointers.
Fixes a memory corruption bug found with glean/api2 test.
|
|
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...
|
|
|
|
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.
|
|
shader/shader program objects to avoid memory access error.
|
|
This reverts commit 3ffd11f71d021f672b9bc15b3c39c155a0e2fecb.
|
|
|
|
|
|
Currently a callback delete_shader_cb is used for deleting shader
and shader program objects. Mesa detaches all attached shaders in
_mesa_free_shader_program_data when deleting shader program objects. However
it is likely that these shaders have been freed in _mesa_free_shader,
which will result in unexpected behaviour. This fix uses a single callback for
shader program objects and deletes shader program objects before shader objects.
|
|
Also add some extra tests to the shader_api regression tests
|
|
|
|
- return GL_INVALID_OPERATION instead of GL_INVALID_VALUE if location is bad
- correct the type-checking of uniforms from my previous commit
- accept location of -1 in _mesa_uniform_matrix
|
|
- fix sizes for GL_FLOAT_MAT2x3 and GL_FLOAT_MAT4x3 in sizeof_glsl_type
- fix size returns in _mesa_get_active_attrib
- fix out-of-bounds array access to vec_types in _mesa_get_active_attrib
- fix queries of matrix uniforms in _mesa_get_uniformfv
- fix _mesa_get_uniformfv to only return one base, even from an array
- allow location == -1 in _mesa_uniform
- validate types in _mesa_uniform
- allow array overruns in _mesa_uniform
|
|
|
|
This allows making a bunch of functions static, and removes a state
tracker dependency on driverfuncs.c
|
|
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.
|
|
|