Age | Commit message (Collapse) | Author |
|
The constness of the function parameter gets inlined with the rest of
the function. However, there is also an assignment to the parameter.
If this occurs inside a loop the loop analysis code will get confused
by the assignment to a read-only variable.
Fixes bugzilla #30552.
NOTE: this is a candidate for the 7.9 branch.
|
|
This reverts commit a77a6bc008b3146c56431fa520a00e1f8dfa3938.
|
|
|
|
to GLSL spec (and Win7 ATI drivers do complain about that)
|
|
Fixes glsl-fs-function-samplers.
|
|
Previously, we'd replace an argument of mysampler[2] with a plain
reference to mysampler by using the cloning hash table. Instead, use
a visitor to clone whatever complicated sampler dereference into the
sampler parameter derefs in the inlined function body.
|
|
In most cases, we needed to be reparenting the cloned IR to a
different context (for example, to the linked shader instead of the
unlinked shader), or optimization before the reparent would cause
memory usage of the original object to grow and grow.
|
|
|
|
|
|
We already have asserts that it was the last call in the function, so
it's safe to remove after it got cloned in.
Fixes:
glsl-fs-functions-4.
|
|
Instead, just use the incoming sampler param. Fixes many texture-using
piglit tests since the linker rework.
|
|
|
|
This is quite a large patch because breaking it into smaller pieces
would result in the tree being intermitently broken. The big changes
are:
* Add the ir_var_temporary variable mode
* Change the ir_variable constructor to take the mode as a
parameter and correctly specify the mode for all ir_varables.
* Change the linker to not cross validate ir_var_temporary
variables.
* Change the linker to pull all ir_var_temporary variables from
global scope into 'main'.
|
|
The parameters[i] is our inlined variables representing the
parameters, so they are always ir_var_auto. Walk the signature params
in handling "out" values like we do for "in" values to find the mode.
Fixes (with the previous 2 commits):
glsl1-function call with in, out params
glsl1-function call with inout params
|
|
It would be easy to miss an entry either of the two visitors involved
that would result in trying to ir->remove() the call to remove it from
the instruction stream when really it's part of an expression tree
that wasn't flattened.
|
|
This is as opposed to returning the type of the base class of the hierarchy.
|
|
|
|
|
|
|