summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/brw_fs.cpp
AgeCommit message (Collapse)Author
2010-10-01i965: Fix off-by-ones in handling the last members of register classes.Eric Anholt
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.
2010-10-01i965: Add a sanity check for register allocation sizes.Eric Anholt
2010-10-01i965: When producing a single channel swizzle, don't make a temporary.Eric Anholt
This quickly cuts 8% of the instructions in my glsl demo.
2010-10-01i965: Restore the forcing of aligned pairs for delta_xy on chips with PLN.Eric Anholt
By doing so using the register allocator now, we avoid wasting a register to make the alignment happen.
2010-10-01i965: Fix up copy'n'pasteo from moving coordinate setup around for gen4.Eric Anholt
2010-10-01i965: Add real support for pre-gen5 texture sampling to the new FS.Eric Anholt
Fixes 36 testcases, including glsl-fs-shadow2d*-bias which fail on the Mesa IR backend.
2010-10-01i965: Pre-gen6, map VS outputs (not FS inputs) to URB setup in the new FS.Eric Anholt
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
2010-10-01i965: Also increment attribute location when skipping unused slots.Eric Anholt
Fixes glsl1-texcoord varying.
2010-10-01i965: Fix the gen6 jump size for BREAK/CONT in new FS.Eric Anholt
Since gen5, jumps are in increments of 64 bits instead of increments of 128-bit instructions.
2010-10-01i965: Add gen6 attribute interpolation to new FS backend.Eric Anholt
Untested, since my hardware is not booting at the moment.
2010-09-30i965: Split the gen4 and gen5 sampler handling apart.Eric Anholt
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!)
2010-09-30i965: Use the lowering pass for texture projection.Eric Anholt
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).
2010-09-30i965: Fix new FS handling of builtin uniforms with packed scalars in structs.Eric Anholt
We were pointing each element at the .x channel of the ParameterValues. Fixes glsl1-linear fog.
2010-09-30i965: Fix whole-structure/array assignment in new FS.Eric Anholt
We need to walk the type tree to get the right register types for structure components. Fixes glsl-fs-statevar-call.
2010-09-29i965: Remove my "safety counter" code from loops.Eric Anholt
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.
2010-09-29i965: Add live interval analysis and hook it up to the register allocator.Eric Anholt
Fixes 13 piglit cases that failed at register allocation before.
2010-09-29i965: First cut at register allocation using graph coloring.Eric Anholt
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.
2010-09-29i965: Clean up the virtual GRF handling.Eric Anholt
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.
2010-09-29i956: Make new FS discard do its work in a temp, not the null reg!Eric Anholt
Fixes: glsl-fs-discard-02 (GPU hang) glsl1-discard statement (2)
2010-09-28i965: Add support for builtin uniforms to the new FS backend.Eric Anholt
Fixes 8 piglit tests.
2010-09-28i965: Clean up obsolete FINISHME comment.Eric Anholt
2010-09-28i965: Fix array indexing of arrays of matrices.Eric Anholt
The deleted code was meant to be handling indexing of a matrix, which would have been a noop if it had been correct.
2010-09-28i965: Don't try to emit interpolation for unused varying slots.Eric Anholt
Fixes: glsl-fs-varying-array glsl-texcoord-array glsl-texcoord-array-2 glsl-vs-varying-array
2010-09-28i965: Do interpolation for varying matrices and arrays in the FS backend.Eric Anholt
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
2010-09-28i965: Add support for ARB_fragment_coord_conventions to the new FS backend.Eric Anholt
Fixes: glsl-arb-frag-coord-conventions glsl-fs-fragcoord
2010-09-28i965: Add support for ir_loop counters to the new FS backend.Eric Anholt
Fixes: glsl1-discard statement in for loop glsl-fs-loop-two-counter-02 glsl-fs-loop-two-counter-04
2010-09-28i965: Add support for MRT to the new FS backend.Eric Anholt
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
2010-09-28i965: Add support for non-color render target write data to new FS backend.Eric Anholt
This is the first time these payload bits have made sense to me, outside of brw_wm_pass* structure. Fixes: glsl1-gl_FragDepth writing
2010-09-28i965: Set up sampler numbers in the FS backend.Eric Anholt
+10 piglits
2010-09-28i965: Subtract instead of adding when computing y delta in new FS backend.Eric Anholt
Fixes 7 piglit cases.
2010-09-28i965: Add support for gl_FrontFacing to the new FS backend.Eric Anholt
Fixes: glsl1-gl_FrontFacing var (1) glsl1-gl_FrontFacing var (2)
2010-09-28i965: Add support for struct, array, and matrix uniforms to FS backend.Eric Anholt
Fixes 16 piglit cases.
2010-09-28i965: Add support for dereferencing structs to the new FS backend.Eric Anholt
Fixes: glsl1-struct(2)
2010-09-28i965: Set the variable type when dereferencing an array.Eric Anholt
We don't set the type on the array virtual reg as a whole, so here's the right place. Fixes: glsl1-GLSL 1.20 arrays glsl1-temp array with constant indexing, fragment shader glsl1-temp array with swizzled variable indexing
2010-09-28i965: Fix up the FS backend for the variable array indexing pass.Eric Anholt
We need to re-run channel expressions afterwards as it generates new vector expressions, and we need to successfully support conditional assignment (brw_CMP takes 2 operands, not 1).
2010-09-28i965: Fix valgrind complaint about base_ir for new FS debugging.Eric Anholt
2010-09-28i965: Apply the same set of lowering passes to new FS as to Mesa IR.Eric Anholt
While much of this we will want to support natively, this should make the task of reaching the Mesa IR backend's quality easier. Fixes: glsl-fs-main-return.
2010-09-28i965: Actually track the "if" depth in loop in the new FS backend.Eric Anholt
Fixes: glsl-fs-if-nested-loop.
2010-09-28i965: Fix negation in the new FS backend.Eric Anholt
Fixes: glsl1-Negation glsl1-Negation2
2010-09-27i965: Add support for dFdx()/dFdy() to the FS backend.Eric Anholt
Fixes: glsl-fwidth glsl-derivs-swizzle
2010-09-27i965: Handle all_equal/any_nequal in the new FS.Eric Anholt
These are generated for scalar operands instead of plain equal/nequal. But for scalars, they're the same anyway. +30 piglits.
2010-09-27i965: Fix up writemasked assignments in the new FS.Eric Anholt
Not sure how I managed to get tests to succeed without this. +54 piglits.
2010-09-22i965: Warning fix for vector result any_nequal/all_equal change.Eric Anholt
2010-09-09i965: Add switch cases for ir_unop_noise, which should have been lowered.Eric Anholt
Fixes compiler warnings.
2010-09-08glsl: add several EmitNo* options, and MaxUnrollIterationsLuca Barbieri
This increases the chance that GLSL programs will actually work. Note that continues and returns are not yet lowered, so linking will just fail if not supported. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-09-07i965: Make pixel_xy results UW.Eric Anholt
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.
2010-09-07i965: Don't bother with RNDZ for f2i.Eric Anholt
The default type conversion for MOV should be fine, and RNDZ actually requires two instructions.
2010-09-07i965: Align the start of attribute interp coefficients in FS to use PLN.Eric Anholt
2010-09-07i965: Just assert when we flagged a compile error in the FS for now.Eric Anholt
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.
2010-09-07i965: Clean up fs_reg setup by using a helper for constructors.Eric Anholt