Age | Commit message (Collapse) | Author |
|
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 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).
|
|
We were pointing each element at the .x channel of the
ParameterValues.
Fixes glsl1-linear fog.
|
|
We need to walk the type tree to get the right register types for
structure components. Fixes glsl-fs-statevar-call.
|
|
Remove duplicated include.
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
I've screwed this up enough times that I don't think it's worth it.
This time, it was that I was doing it once per top-level body
instruction instead of just once at the end of the loop body.
|
|
Fixes 13 piglit cases that failed at register allocation before.
|
|
The interference is totally bogus (maximal), so this is equivalent to
our trivial register assignment before. As in, passes the same set of
piglit tests.
|
|
Now, virtual GRFs are consecutive integers, rather than offsetting the
next one by the size. We need the size information to still be around
for real register allocation, anyway.
|
|
Fixes:
glsl-fs-discard-02 (GPU hang)
glsl1-discard statement (2)
|
|
|
|
This reverts commit 0a1910c26760762eb8d67f68dfd87494ab479e38.
oops, shouldn't apply tiling depth buffer for other chips as well.
|
|
Until we fixed GS hang issue.
|
|
Sandybridge only support tiling depth buffer, always set tiling bit.
Fix 'fbo_firecube' demo.
|
|
Fixes 8 piglit tests.
|
|
|
|
The deleted code was meant to be handling indexing of a matrix, which
would have been a noop if it had been correct.
|
|
Fixes:
glsl-fs-varying-array
glsl-texcoord-array
glsl-texcoord-array-2
glsl-vs-varying-array
|
|
Fixes:
glsl-array-varying-01
glsl-vs-mat-add-1
glsl-vs-mat-div-1
glsl-vs-mat-div-2
glsl-vs-mat-mul-2
glsl-vs-mat-mul-3
|
|
Fixes:
glsl-arb-frag-coord-conventions
glsl-fs-fragcoord
|
|
Fixes:
glsl1-discard statement in for loop
glsl-fs-loop-two-counter-02
glsl-fs-loop-two-counter-04
|
|
Fixes these tests using gl_FragData or just gl_FragDepth:
glsl1-Preprocessor test (extension test 1)
glsl1-Preprocessor test (extension test 2)
glsl-bug-22603
|
|
This is the first time these payload bits have made sense to me,
outside of brw_wm_pass* structure.
Fixes: glsl1-gl_FragDepth writing
|
|
+10 piglits
|