Age | Commit message (Collapse) | Author |
|
|
|
cherry-picked from master
|
|
|
|
|
|
|
|
This fixes a failure for cases like:
vec4 v;
v[1] *= 2.0;
The v[1] actually acts like a writemask, equivalent to v.y
The fix is a bit convoluted, but will do for now.
cherry-picked from master
|
|
cherry-picked from master
|
|
cherry-picked from master
|
|
This fixes a failure for cases like:
vec4 v;
v[1] *= 2.0;
The v[1] actually acts like a writemask, equivalent to v.y
The fix is a bit convoluted, but will do for now.
|
|
|
|
|
|
Before, the presence of a 'return' statement always prevented inlining
a function. This was because we didn't want to accidentally return from
the _calling_ function. We still need the semantic of 'return' when inlining
but we can't always use unconditional branches/jumps (GPUs don't always
support arbitrary branching).
Now, we allow inlining functions w/ return if the return is the last
statement in the function. This fixes the common case of a function
that returns a value, such as:
vec4 square(const in vec4 x)
{
return x * x;
}
which effectively compiles into:
vec4 square(const in vec4 x)
{
__retVal = x * x;
return;
}
The 'return' can be no-op'd now and we can inline the function.
cherry-picked from master
|
|
cherry-picked from master
|
|
Before, the presence of a 'return' statement always prevented inlining
a function. This was because we didn't want to accidentally return from
the _calling_ function. We still need the semantic of 'return' when inlining
but we can't always use unconditional branches/jumps (GPUs don't always
support arbitrary branching).
Now, we allow inlining functions w/ return if the return is the last
statement in the function. This fixes the common case of a function
that returns a value, such as:
vec4 square(const in vec4 x)
{
return x * x;
}
which effectively compiles into:
vec4 square(const in vec4 x)
{
__retVal = x * x;
return;
}
The 'return' can be no-op'd now and we can inline the function.
|
|
|
|
|
|
test in if.glsl
|
|
test in if.glsl
|
|
e.g.
const int kernelSize = 9;
uniform vec2 kernel[kernelSize];
|
|
|
|
|
|
e.g.
const int kernelSize = 9;
uniform vec2 kernel[kernelSize];
|
|
cherry-picked from gallium-0.1
|
|
|
|
All samplers indexes were zero.
cherry-picked from master (b6fb0940c226373ac235a5d327d3fcfd742bc6b9)
|
|
All samplers indexes were zero.
|
|
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.
|
|
|
|
cherry-picked from master
|
|
|
|
|
|
Also, remove obsolete matrix codegen code.
cherry-picked from master
|
|
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
|
|
|
|
Mostly some pedantic changes such that `make clean' always ignores
errors. Also changed the top clean target to do the `touch
configs/current' dance instead of realclean.
|
|
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...
|
|
|
|
|
|
|
|
|