| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
We had to inline it to avoid doing a double-lookup in the process of
adding assertion checks.
|
|
|
|
| |
Fixes: glsl-fs-uniform-array-4.
|
|
|
|
|
|
| |
This was in place for uniform handling, but nothing actually needs the
value now, since presence in a parameter list indicates that the
uniform was used as far as the linker was concerned.
|
|
|
|
|
|
|
| |
This fixes relative addressing of temporaries (and maybe others)
in all gallium drivers.
Acked on irc by Eric Anholt.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, uniform initializers were handled by ir_to_mesa as it made
its Parameters list. However, uniform values are global to all
shaders, and the value set in one Parameters list wasn't propagated to
the other gl_program->Parameters lists. By going back through the
general Mesa uniform handling, we make sure that all gl_programs get
updated values, and also successfully separate uniform initializer
handling from ir_to_mesa gl_program generation.
Fixes:
glsl-uniform-initializer-5.
|
|
|
|
| |
Fixes bugzilla #29628
|
|
|
|
|
|
|
| |
The previous any() implementation would generate arg0.x || arg0.y ||
arg0.z. Having an expression operation for this makes it easy for the
backend to generate something easier (DPn + SNE for 915 FS, .any
predication on 965 VS)
|
|
|
|
| |
Fixes: glsl-fs-any
|
|
|
|
|
|
|
|
|
|
|
| |
We ended up returning CONST[loc] rather than TEMP[loc2]. Things would
*usually* end up working out OK, since the constants often ended up
getting allocated to CONST[loc..loc+columns] with no swizzle. But for
the case where the contigous temporary copy of the swizzled constant
vec4 args was actually needed, we'd end up reading some other constant
values, possibly including ones not actually allocated.
Fixes: glsl-varying-mat3x2.
|
|
|
|
| |
The default constructor did not initialize some member variables.
|
| |
|
| |
|
|
|
|
|
| |
Again, this is a one-element struct that was incorrectly missing the
field.
|
|
|
|
|
| |
This was triggered by the previous bug, but is a separate problem
in the general sense.
|
|
|
|
|
|
|
| |
According to both GLSL 1.20 and 4.0, these are a struct with one field
called "sceneColor".
Fixes a crash on loading in FlightGear.
|
| |
|
|
|
|
| |
This might happen if we manage to trigger the right linker errors.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Otherwise, with repeated program recompile, we never free the results
of the previous compile.
|
| |
|
|
|
|
|
|
|
|
|
| |
I didn't expect that this would really work, but it turns out there
are shaders in the wild that do it.
Fixes: (with swrast)
glsl-fs-main-return
glsl-vs-main-return
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These binops are the vector-to-bool comparisons, not vec-to-bvec. We
likely want both operations avilable as expression, since 915 and 965
FS naturally does the vector version, while 965 VS can also naturally
do the scalar version. However, we can save that until later.
Fixes:
glsl-fs-vec4-operator-equal.shader_test
glsl-fs-vec4-operator-notequal.shader_test
glsl-vs-vec4-operator-equal.shader_test
glsl-vs-vec4-operator-notequal.shader_test
|
|
|
|
|
|
| |
In one optimization pass, register files may have been messed therefore
merging instructions which use the same index in two different register
files.
|
|
|
|
|
| |
This will make extracting source to produce minimal testcases for
shader compile issues easier.
|
|\
| |
| |
| |
| | |
Conflicts:
src/mesa/program/prog_optimize.c
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | | |
This lets drivers override ir_to_mesa with their own codegen, or at
least have a native alternative.
|
| | |
| | |
| | |
| | |
| | | |
These are passes that we expect all codegen to be happy with. The
other lowering passes for Mesa IR are moved to the Mesa IR generator.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
All the current HW backends transform subtract to adding the negation,
so I haven't bothered peepholing it back out in Mesa IR. This allows
some subtract of subtract to get removed in ir_algebraic.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Whereas constant folding evaluates constant expressions at rvalue
nodes, constant propagation tracks constant components of vectors
across execution to replace (possibly swizzled) variable dereferences
with constant values, triggering possible constant folding or reduced
variable liveness.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This lets us handle arrays much better than trying to work backwards
from assembly.
Fixes fbo-drawbuffers-maxtargets on swrast (i965 needs loop unrolling)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Support for samplers in general is still incomplete -- anything in a
uniform struct will still be broken. But that doesn't appear to be
any different from master.
Fixes:
glsl-fs-uniform-sampler-array.shader_test
|
| | |
| | |
| | |
| | | |
Fixes glean shaderAPI.
|
| | |
| | |
| | |
| | | |
Fixes a failure in glean shaderAPI.
|
| | |
| | |
| | |
| | | |
Fixes piglit test array_texture.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes ir_to_mesa handling of unop_log, which used the weird ARB_vp LOG
opcode that doesn't do what we want. This also lets the multiplication
coefficients in there get constant-folded, possibly.
Fixes:
glsl-fs-log
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Optimizations at compile time should generally be done with the goal
of reducing instruction count so that other work, particularly
linking, is less time-consuming if the shader is used multiple times.
However, function inlining increases instruction count for the inlined
function bodies without removing the original function body, since we
don't know if it will be used at link time or not.
Reduces the runtime of linking and executing a Yo Frankie fragment
shader from 0.9 seconds to 0.5 seconds (-45.9%, +/- 2.2%, n=5).
|