Age | Commit message (Collapse) | Author |
|
Improves performance of my GLSL demo 14.3% (+/- 4%, n=4) by
eliminating the moves used in ir_assignment and ir_swizzle handling.
Still 16.5% to go to catch up to the Mesa IR backend, presumably
because instructions are almost perfectly mis-scheduled now.
|
|
We were trying to remap a fully-filled array down to only handing the
WM the components it uses. This is called attribute swizzling, and if
you don't enable it you just get 1:1 mappings of inputs to outputs.
This almost fixes glsl-routing, except for the highest gl_TexCoord[]
indices.
|
|
We'd overwrite the same element twice.
|
|
We would compute a new buffer, but never point the hardware at the new
buffer. This partially fixes glsl-routing, as now it get the updated
uniform for which attribute to draw.
|
|
If someone happened to land a set in a different swizzle order, we
would have assertion failed.
|
|
_mesa_add_unnamed_constant() already does that.
|
|
_mesa_add_state_reference does that check for us anyway.
|
|
Fixes glsl-fs-texturecube-2-*
|
|
|
|
|
|
Fixes point-line-no-cull.
Bug #30532
|
|
We sensibly only provide it if the FS asks for it. We could actually
skip WPOS unless the FS needed WPOS.zw, but that's something for
later.
Fixes: glsl-texture2d and probably many others.
|
|
Fixes glsl1-gl_FrontFacing var (2) with new FS.
|
|
|
|
This should fix texturing in the new FS backend.
|
|
Not needed now that we're doing barycentric.
|
|
|
|
I only set it on the color_regions == 0 case, missing the important
case, causing GPU hangs on pre-gen6.
|
|
The jump delta is now in the part of the instruction where the
destination fields used to be, and the src args are ignored (or not,
for the new non-predicated IF that we don't use yet).
|
|
|
|
It's not that hard to detect when we need the header.
|
|
We could do the first operand as well by flipping the comparison, but
this covered several CMPs in code I was looking at.
|
|
A debug disable had slipped in.
|
|
This uses message headers for now, since we'll need it for MRT. We
can cut out the header later.
|
|
It instead sensibly appears in the src0 slot.
|
|
We could try to detect this in expression handling and do it
proactively there, but it seems like less logic to do it in one
optional pass at the end.
|
|
The glsl core should be handling most dead code issues for us, but we
generate some things in codegen that may not get used, like the 1/w
value or pixel deltas. It seems a lot easier this way than trying to
work out up front whether we're going to use those values or not.
|
|
This also means that our intervals now highlight dead code.
|
|
Easy enough patch, who needs a full test run. Oh, that's right. Me.
|
|
The brw_wm_surface_state.c handling of GL_DEPTH_TEXTURE_MODE doesn't
apply to shadow compares, which always return an intensity value. The
texture swizzles can do the job for us.
Fixes:
glsl1-shadow2D(): 1
glsl1-shadow2D(): 3
|
|
|
|
FORCE_ZERO_RTAINDEX should be in the fourth (and final) dword.
|
|
|
|
Luckily, one of them would result in failing out register allocation
when the other bugs were encountered. Applies to
glsl-fs-vec4-indexing-temp-dst-in-nested-loop-combined, which still
fails register allocation, but now legitimately.
|
|
|
|
This quickly cuts 8% of the instructions in my glsl demo.
|
|
By doing so using the register allocator now, we avoid wasting a
register to make the alignment happen.
|
|
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=30551
|
|
|
|
|
|
|
|
Fixes 36 testcases, including glsl-fs-shadow2d*-bias which fail on the
Mesa IR backend.
|
|
|
|
We should fix the SF to actually give us just the data we need, but
this fixes regressions in the new FS until then.
Fixes:
glsl-kwin-blur
glsl-routing
|
|
Fixes glsl1-texcoord varying.
|
|
Since gen5, jumps are in increments of 64 bits instead of increments
of 128-bit instructions.
|
|
Untested, since my hardware is not booting at the moment.
|
|
|
|
Trying to track the insanity of the different argument layouts for
normal/shadow crossed with normal/lod/bias one generation at a time is
enough.
Fixes: glsl1-texture2D() with bias.
(first test passing in this code that doesn't pass without it!)
|
|
We should end up with the same code, but anyone else with this issue
could share the handling (which I got wrong for shadow comparisons in
the driver before).
|