Age | Commit message (Collapse) | Author |
|
Bug #30040.
|
|
This should only occur if glCompileShader is called without a prior call
to glShaderSource. An empty source program should be the empty string.
|
|
Fixes assertion failures in fbo-alpha with a debug build of Mesa.
Bug #29781.
|
|
I swear there was some git option for "don't push things when you've
got uncommitted changes", but I can't find it now.
|
|
Like the constant handling and the handling of other uniforms, we add
the whole thing to the Parameters, avoiding messy, incomplete logic
for adding just the elements of a builting uniform that get used.
This means that a driver that relies only on ParameterValues[] for its
parameters will have an increased parameter load, but drivers
generally don't do that (since they have other params they need to
handle, too).
Fixes glsl-fs-statevar-call (testcase for Ember). Bug #29687.
v2: Continue referencing the STATE_VAR[] file directly when the
uniform will land in STATE_VAR[] formatted exactly as we'd put into a
temporary. When there's array dereferencing, we don't copy-propagate
in Mesa IR (not knowing where the array is in register space), so
smarts here are required or we'll massively increase the temp count.
|
|
We carefully multiplied our two ints (since we want to be precise
after all) then stored them in a float, which is not specced to really
work, in addition to wasting precision. Fixes
vp-arl-constant-array-huge-* things since the assertions were added.
|
|
There is a restriction on the destination of an operation involving a
vector immediate being 128-bit aligned and the destination horizontal
stride being equivalent to 2 bytes. Fixes bad pixel_x results from
gl_FragCoord, where each pair had the same value.
|
|
The default type conversion for MOV should be fine, and RNDZ actually
requires two instructions.
|
|
Now that we're playing with other types in brw_fs.cpp, it's easy to
trip over issues like these.
|
|
This catches a failure in the FS backend.
|
|
|
|
Dumping back to potentially 16-wide dispatch doesn't really work out
at the moment, and hopefully I'll just be able to resolve all the
failures so we never have to do this at all.
|
|
|
|
|
|
|
|
This is a requirement specified in the docs. No behavior change in
glsl-vs-varying-array.shader_test that violated these requirements.
|
|
|
|
Pass mesa_api to CreateContext, and abort early
if the requested API isn't recognized.
|
|
Sorry, I deleted the Gallium copy without realizing that the DRI
one was just a symlink to it.
|
|
|
|
|
|
|
|
|
|
At some point this actually triggered, not sure if it still does.
Give a meaningful assert and refuse to smash the stack anyway.
|
|
The new GLSL compiler doesn't support it.
Advertising it prevents Unigine Heaven from working, since it attempts to
use it.
|
|
This should fix bogus reports "Too many temporaries." and maybe some others.
|
|
This fixes glsl-fs-loop-nested.
|
|
Broken with commit d774b0c710bb7d833d17bd12f5151a0176baad96.
Reported by Chris Rankin.
|
|
a temp."
This reverts commit 5ad74779cea07cc6a19a52874cdaef8b018e2f1b.
Sorry, but I had to revert this.
Any commit which needlessly increases the number of temporaries is wrong.
More temporaries mean less shader performance because of reduced parallelism
and therefore less efficient latency hiding. In this case, there is possible
performance degradation of every shader which uses GL state variables.
I cannot accept this.
|
|
|
|
|
|
Register allocation can now reallocate temporaries right after the last indexed
source operand, instead of being disabled for the whole shader.
|
|
|
|
|
|
|
|
Those are:
- dead-code elimination
- constant folding
- peephole (mainly copy propagation)
- register allocation
There are some bugs which I need to track down.
Also fix up the descriptions of all the debug options.
|
|
And not during the register allocation, which may be skipped for debugging
purposes. Also the predicate register is now added to the number of temps.
|
|
|
|
|
|
We use RC_OPCODE_REPL_ALPHA instead.
|
|
This cleans up the mess in r3xx_compile_fragment_program.
|
|
|
|
First list compiler passes in an array, then run the new function rc_run_compiler.
Every backend may need a different set of passes.
This cleans up the mess in r3xx_compile_vertex_program.
|
|
|
|
&c->Base == c.
|
|
I need to reduce the number of parameters of each compiler pass function.
This is part of a larger cleanup.
|
|
|
|
|
|
Fixes piglit fdo25614-genmipmap.
|
|
|