Age | Commit message (Collapse) | Author |
|
Fixes:
glsl1-GLSL 1.20 array constructor 1
glsl1-GLSL 1.20 array constructor 2
glsl1-GLSL 1.20 array.length()
glsl1-GLSL 1.20 const array constructor 1
glsl1-GLSL 1.20 const array constructor 2
|
|
This way, we don't need to pass in a parse state, and the context
doesn't grow with the number of passes through optimization.
|
|
This gets glsl-vs-raytrace, glsl-fs-raytrace running on the new
compiler.
|
|
MESA_GLSL=nopt now produces believable output for glsl-fs-raytrace.
|
|
|
|
This cleans up the assembly output of almost all the non-logic tests
glsl-algebraic-*. glsl-algebraic-pow-two needs love (basically,
flattening to a temporary and squaring it).
|
|
void functions have a type of glsl_type::void_type, not a null type.
|
|
|
|
Fixes:
TPPStreamCompiler::assignOperands
|
|
This pulls in multiple i965 driver fixes which will help ensure better
testing coverage during development, and also gets past the conflicts
of the src/mesa/shader -> src/mesa/program move.
Conflicts:
src/mesa/Makefile
src/mesa/main/shaderapi.c
src/mesa/main/shaderobj.h
|
|
Hardware backends will get angry otherwise.
|
|
Also fix up comments, so that the difference between the two passes is
clarified.
|
|
|
|
|
|
|
|
|
|
|
|
Several routines directly analyze the grf-to-mrf moves from the Gen
binary code. When it is possible, the mov is removed and the message
register is directly written in the arithmetic instruction
Also redundant mrf-to-grf moves are removed (frequently for example,
when sampling many textures with the same uv)
Code was tested with piglit, warsow and nexuiz on an Ironlake
machine. No regression was found there
Note that the optimizations are *deactivated* on Gen4 and Gen6 since I
did test them properly yet. No reason there are bugs but who knows
The optimizations are currently done in branch free programs *only*.
Considering branches is more complicated and there are actually two
paths: one for branch free programs and one for programs with branches
Also some other optimizations should be done during the emission
itself but considering that some code is shader between vertex shaders
(AOS) and pixel shaders (SOA) and that we may have branches or not, it
is pretty hard to both factorize the code and have one good set of
strategies
|
|
Clarifies program assembly, and with a little tweak to always use
constant_map, we could cut down on constant buffer payload.
|
|
On Cygwin locale_t in not available but 'llvm-config --cppflags' adds
the compiler flag -D_GNU_SOURCE to the build.
|
|
The es1, es2 and gl state trackers include draw_pipe.h, which includes
the llvm headers if MESA_LLVM is true, so we also need to add the
llvm seachpaths.
Similarly, gallivm and other gallium drivers need LLVM_CFLAGS to build when enabled.
Also fix xorg drivers, they didn't include LDFLAGS.
|
|
|
|
If we bias x,y we still need to pass through z,w in case the shader
reads gl_FragCoord.z or .w.
Fixes fd.o bug 29183 (piglit glsl-bug-22603).
NOTE: This is a candidate for the 7.8 branch.
|
|
This should be more useful for developers and for bug triaging than
just generating wrong code.
|
|
Fixes glsl-vs-arrays. Bug #27388.
|
|
Fixes:
glsl1-struct (1)
glsl1-struct (2)
glsl1-struct (3)
glsl1-struct (4)
|
|
Fixes fd.o bug 29206.
|
|
|
|
Chances are, if one fragment looped badly, others will too, and
debugging output gets overwhelmed by the looping complaints.
|
|
|
|
Fixes glsl-vs-point-size.
|
|
This has confused me twice now. It's a fixed width of 4 (usually a
region description of <4,4,1>), not 1. If it was 1, we'd have been
skipping all over register space.
|
|
|
|
|
|
This supersedes http://lists.freedesktop.org/archives/mesa-dev/2010-July/001442.html.
|
|
Fixes a segfault in Regnum Online.
|
|
The ARL value is increments of vec4 in the register file. But
PROGRAM_TEMPORARY or PROGRAM_INPUT are stored as vec4s interleaved
between the two verts being executed (thus a vec8 each), compared to
PROGRAM_STATE_VAR being packed vec4s.
Fixes:
glsl-vs-arrays-2
glsl-vs-mov-after-deref
(without regressing glsl-vs-arrays-3)
|
|
|
|
The previous support was overly complicated by trying to use the same
1-OWORD message for both offsets.
|
|
|
|
|
|
Otherwise, the second half isn't written, and we end up reading back
black.
Fixes the remaining junk drawn in glsl-max-varyings, and will likely
help with a number of large real-world shaders.
|
|
They go into the render cache, so while we don't care about their
contents after execution, failing to note them could cause the writes
to be flushed over important buffer contents later.
|
|
|
|
Otherwise, the subsequent read may not get the written value.
|
|
|
|
This is an invasive set of changes. Each user shader tracks a set of other
shaders that contain built-in functions. During compilation, function
prototypes are imported from these shaders. During linking, the
shaders are linked with these built-in-function shaders just like with
any other shader.
|
|
|
|
To quiet a compiler warning.
|
|
This quiets a compiler warning, (and ensures a segmentation fault rather
than memory corruption if this variable is written through before being
initialized elsewhere).
|