Age | Commit message (Collapse) | Author |
|
|
|
Values outside the writemask are set in the destination to {0,0,0,1}
|
|
Manual merge of ureg changes on the branch. Too much unrelated stuff
for a proper merge.
|
|
Can be implemented with CMP src2, src1, src0
|
|
This has several advantages over the u_
- not hand written
- no intermediate memcpy of raw pixels
- supports 4 ubytes in addition to floats
- no need to pass a pipe_transfer
It also has (hopefully temporary) limitations:
- no support for YUV
- no support for SRGB
|
|
Conflicts:
src/glx/x11/glxcmds.c
|
|
Cherry picked from Keith's commit f911c3b9897b90132c8621a72bfeb824eb3b01e5.
|
|
|
|
|
|
|
|
|
|
|
|
Namelly, explicitly distinguish formats coded by arithmetic manipulation,
from formats layed out in array.
|
|
At least not until stabilizes, to reduce noise.
|
|
|
|
There are some inconsistencies in pipe_format, but above all, there
simply aren't enough bits in an enum to conveniently store all
information about a pixel format we need to be able to dynamically
generate pixel packing/unpacking code.
|
|
|
|
|
|
Fixes glean/texture_srgb failure, bug #23449.
|
|
|
|
|
|
Shorthand.
(cherry picked from commit de911220bbbe74cff0c79b260456ff36122b7b5b)
|
|
Simplifies migration to tgsi_ureg.
(cherry picked from commit f574398c07c41cb8d31249a7186fc178ef7d552a)
|
|
When translating an incoming shader (rather than building one from scratch)
it's preferable to be able to call a single, generic instruction emitter
rather than figuring out which of the opcode-specific functions to call.
|
|
Fall back to interpreter for now. This doesn't happen very often.
|
|
SOA dependencies can happen when a register is used both as a source and
destination and the source is swizzled. For example:
MOV T, T.yxwz; would expand into:
MOV t0, t1;
MOV t1, t0;
MOV t2, t3;
MOV t3, t2;
The second instruction will produce the wrong result since we wrote to t0
in the first instruction. We need to use an intermediate temporary to fix
this.
This will take more work to fix for all TGSI instructions. This seems to
happen with MOV instructions more than anything else so fix that case now
and warn on others.
Fixes piglit glsl-vs-loop test (when not using SSE). See bug 23317.
|
|
Users of the parser can make use of this.
|
|
|
|
Fall back to interpreter for now. This doesn't happen very often.
|
|
SOA dependencies can happen when a register is used both as a source and
destination and the source is swizzled. For example:
MOV T, T.yxwz; would expand into:
MOV t0, t1;
MOV t1, t0;
MOV t2, t3;
MOV t3, t2;
The second instruction will produce the wrong result since we wrote to t0
in the first instruction. We need to use an intermediate temporary to fix
this.
This will take more work to fix for all TGSI instructions. This seems to
happen with MOV instructions more than anything else so fix that case now
and warn on others.
Fixes piglit glsl-vs-loop test (when not using SSE). See bug 23317.
|
|
Users of the parser can make use of this.
|
|
|
|
(cherry picked from commit d2787c02c130b1fe20d0c032d468622f2fdaef79)
|
|
(cherry picked from commit aa40c9abc7787fdf46cb661a4d0bb8bec513fc63)
|
|
|
|
|
|
Could previously emit opcodes with label arguments, but was no way to
patch them with the actual destinations of those labels.
Adds two functions:
ureg_get_instruction_number - to get the id of the next instruction
to be emitted
ureg_fixup_label - to patch an emitted label to point to a given
instruction number.
Need some more complex examples than u_simple_shader, so far this has
only been compile-tested.
|
|
|
|
|
|
Fixes piglit fp-generic tests/shaders/generic/lrp_sat.fp, bug 23316.
|
|
This fixes invalid values for CondStackTop, LoopStackTop, etc.
|
|
|
|
Also fix a typo in ureg_src().
|
|
|
|
|
|
This previously was used only for decomposed (POINT/LINE/TRI) primitives,
but for some time a full range of primitives could end up in here.
Fixes trivial/lineloop-clip on softpipe, among others.
(cherry picked from commit 87cd8a3b8a2407b30916be418ff2f95dfea5d2ad)
|
|
|
|
|
|
Our fallback realloc path requires an old_size argument, but the posix
varient doesn't need this. Add some code to avoid gcc unused variable
warnings for this extra argument.
|
|
|