History log of /external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0c8a8a35e107bcb04de94154933156165fed62a8 10-May-2012 James Benton <jbenton@vmware.com> llvmpipe: Change triangle rasterization comparison from < 0 to <= 0

Tested with custom rasterisation test tool added to piglit suite, reduced errors

Signed-off-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
e252af3406e46fab713b43d0d38f22ccecf2ebeb 23-Sep-2011 Chia-I Wu <olv@lunarg.com> llvmpipe: fix a crash in non-SSE path

It is a typo went unnoticed.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
c620087432b2055aa9301f19f8b6444080698c90 05-Oct-2011 José Fonseca <jfonseca@vmware.com> llvmpipe: Ensure the 16x16 special rasterization path does not touch outside the tile.

llvmpipe has a few special rasterization paths for triangles contained in
16x16 blocks, but it allows the 16x16 block to be aligned only to a 4x4
grid.

Some 16x16 blocks could actually intersect the tile
if the triangle is 16 pixels in one dimension but 4 in the other, causing
a buffer overflow.

The fix consists of budging the 16x16 blocks back inside the tile.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
392b0954c265fdd66b2de99ab677d2e662935682 15-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: use aligned loads/stores for plane values
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
15f4e3a8b98b5f4ca2833c02192ed9e6c237c5c7 12-Oct-2010 Keith Whitwell <keithw@vmware.com> gallium: move some intrinsics helpers to u_sse.h
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
9bf8a55c4b29d55320fc2e7875ecf0e9ca164ee8 15-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: slightly shrink the size of a binned triangle
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
7533c374570b333b5e0d626d36d18c41d4611cb5 12-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: make sure intrinsics code is guarded with PIPE_ARCH_SSE
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
e3ec0fdd546259005c9ed2bf7b05cead2ab95b43 12-Oct-2010 José Fonseca <jfonseca@vmware.com> llmvpipe: improve mm_mullo_epi32

Apply Jose's suggestions for a small but measurable improvement in
isosurf.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
1a574afabc8840da82e68ac643ec3a7b05afb631 12-Oct-2010 Keith Whitwell <keithw@vmware.com> gallium: move sse intrinsics debug helpers to u_sse.h
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
39331be44efc5b5ae749df3f6987626837c7b8ff 12-Oct-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Fix MSVC build.

MSVC doesn't accept more than 3 __m128i arguments.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
b4277bc5843aca7f9e0ecc7e956733f1becd6ad6 12-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: fix typo in last commit
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
2cf98d5a6dccba3fd69b8469e67f66dfb5fc9651 11-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: try to do more of rast_tri_3_16 with intrinsics

There was actually a large quantity of scalar code in these functions
previously. This tries to move more into intrinsics.

Introduce an sse2 mm_mullo_epi32 replacement to avoid sse4 dependency
in the new rasterization code.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
0ff132e5a633170afaed0aea54d01438c895b8ab 08-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: add rast_tri_4_16 for small lines and points
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
6b5575baaa16563f1ea1ad1821254ce6c412283f 13-Sep-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Fix non SSE2 builds.

Should fix fdo 30168.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
c4046d4fda2fe838659bff99bfa17f57f895a943 08-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: introduce tri_3_4 for tiny triangles
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
26b663c2aa1a02bbdf8e689fbcb19ddcd196d8c8 08-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: refactor tri_3_16

Keep step array as a set of four m128i's and reuse throughout the
rasterization.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
67b957781d8195b8f8867e994c03b68f8dc5c807 07-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: pass linear masks to fragment shader

Fragment shader can extract the correct bits for each quad.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
e38d2f716381385e2aad219a3d125065ec0a01bd 25-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: slightly simplify build_mask
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
0aa3a09ced07e150901cd0f7a7917556a018c252 22-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: combine linear mask calculation
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
d8c92a1eea555f8b9d673a3f2a708de5faf8b3cd 15-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: intrinsics versions of build_mask functions
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
5286dd701640976ffc328e8e85fb3830746851a1 19-Jul-2010 Hui Qi Tay <hqtay@vmware.com> llvmpipe: native rasterization for lines

Rasterize lines directly by treating them as 4-sided polygons.
Still need to check the exact pixel rasteration.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
c9b7bece0569d9e193591ebff329acd1d9bd9e3c 15-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: special case triangles which fall in a single 16x16 block

Check for these and route them to a dedicated handler with one fewer
levels of recursive rasterization.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
ff26594a92df37608a3efe47e4d4f3a55bcd6bc1 15-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: remove all traces of step arrays, pos_tables

No need to calculate these values any longer, nor to store them in the
bin data. Improves isosurf a bit more, 115->123 fps.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
4c0641454b952f2c240de8c83511703f98e1f72f 15-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: eliminate last usage of step array in rast_tmp.h

For 16 and 64 pixel levels, calculate a mask which is linear in x and
y (ie not in the swizzle layout).

When iterating over full and partial masks, figure out position by
manipulating the bit number set in the mask, rather than relying on
postion arrays.

Similarly, calculate the lower-level c values from dcdx, dcdy and the
position rather than relying on the step array.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
515194968d033d2c0c5678677f7606d38635d747 15-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: version of block4 which doesn't need the full step array

No noticable slowdown with isosurf.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
510b03539413552a543e25de6b896eb10baf60ae 15-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: reorganize block4 loop, nice speedup

isosurf 95->115 fps just by exchanging the two inner loops in this
function...
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
d4b64167b56f780d0dea73193c345622888fbc16 17-Jun-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: pass mask into fragment shader

Move this code back out to C for now, will generate separately.

Shader now takes a mask parameter instead of C0/C1/C2/etc.

Shader does not currently use that parameter and rasterizes whole
pixel stamps always.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
5046f2c1950c44129f6098a7aae14dd50ee1f8a4 24-Feb-2010 Brian Paul <brianp@vmware.com> llvmpipe: more lp_rasterizer_task parameter passing
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
1c9db3c57f1538e21b839df0989b958be3465a36 24-Feb-2010 Brian Paul <brianp@vmware.com> llvmpipe: pass fewer parameters to rasterization functions
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
ab71a5e4c918eee19b518603a2db11d2793b2c91 24-Feb-2010 Brian Paul <brianp@vmware.com> llvmpipe: added some assertions
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
0c938143db71b2753c97a8fb4c96aeb266f97a0e 17-Feb-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: use ffs technique for full tiles also

Need to compute two masks here for full and partial 16x16 blocks.
Gives a further good improvement for isosurf particularly:

isosurf 97 -> 108
gears 597 -> 611
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
31c816731ead9abce69829e6b5f55a201da3bb47 17-Feb-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: rework do_block_16 to use bitmasks and ffs

Some nice speedups:
gears: 547 -> 597
isosurf: 83 -> 98

Others like gloss unchanged. Could do further work in this direction.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
3bca8691b51a1ca91572c62139f28b64c558ada2 22-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: use some local vars to index step arrays

Saves a few more cycles.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
cd9d9e2436a0815f6ed3a61d2cdf8fad53278506 21-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: added simple perf/statistics counting facility

Currently counting number of tris, how many tiles of each size are
fully covered, partially covered or empty, etc.

Set LP_DEBUG=counters to enable. Results are printed upon context
destruction.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
47fee146879aa8ac7f216c8ac5f3a84270266287 15-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: skip 4x4 in/out test code

It's a litte faster to just do the in/out testing in the shader
jit code.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
12ba9e99db51a4a9e2e28a0574ef59f6548d8a84 15-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: added comment about lookup-tables vs. computation
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
2797f2bf57562c95a601a67edca3089641215cc4 15-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: generate two shader varients, one omits triangle in/out testing

When we know that a 4x4 pixel block is entirely inside of a triangle
use the jit function which omits the in/out test code.

Results in a few percent speedup in many tests.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
808170a0ff6c3a51a1b69a54ed8045b2e0f7d0d1 17-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: replace INT_MIN/2 with INT_MIN

Since changing the in/out test we can just use INT_MIN to be sure the
comparison against the step values always passes.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
b9d33db0a4cb818154b713a27834f66025b14672 17-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: improve the in/out test a little

Instead of:
s = c + step
m = s > 0
Do:
m = step > c (with negated c)
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
ab9438193083b7f9a3180cb9cea45e269131048a 17-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: do final the pixel in/out triangle test in the fragment shader

The test to determine which of the pixels in a 2x2 quad is now done in
the fragment shader rather than in the calling C code. This is a little
faster but there's a few more things to do.

Note that the step[] array elements are in a different order now. Rather
than being in row-major order for the 4x4 grid, they're in "quad-major"
order. The setup of the step arrays is a little more complicated now.
So is the course/intermediate tile test code, but some lookup tables
help with that.

Next steps:
- early-cull 2x2 quads which are totally outside the triangle.
- skip the in/out test for fully contained quads
- make the in/out comparison code tighter/faster.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
3a06c113c76355fc9622adfe7565c18d9787e9a8 08-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: repartition lp_rasterizer state for threading

Some of the state is per-thread. Put that state in new lp_rasterizer_task
struct.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
a08d6302168341001003da32d42cfcff2311fa04 04-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: use LP_DBG() macro everywhere
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
63fe997e28b5bfee1f776a220d121987a5fee62e 02-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: added assertions

And remove unused BLOCKSIZE.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
9c486774913f66c6496cd43cfd9dbd992c28d8cb 02-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: simplify mask computation

Make this a little easier to understand.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
6bde3e0fdfe4bfc3fee33ca0d1d8e13969eb8952 01-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: replace shifts with multiplies to be clearer

The compiler will still do the multiplies with shifts.
It's just a bit easier to follow the logic with multiplies.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
938acf0367416c989d49f231da855ba6ea8d64ca 02-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: make nr_blocks unsigned
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
63b1f23b3eb6fceaff7c2ceed925ef57f63f9fa2 01-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: comments, reformatting and assertions in tri rast code
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
3199c6e764c20c69a76c561b9f4b89a23e5a97f5 20-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: move block list into rast struct
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
8d752a20c6f70b442ac2210cce0fd001499be5f6 20-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: build list of 4x4 blocks to be shaded
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
1735325a23156b330c2281c91aec4a9b39ecbad9 20-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: recursive rasterization within a tile
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
7670628061c2a6ce0a1a787556b0e33a38fd3049 20-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: precalculate some offsets
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
b0828b0adc7438ef33f9393f839226ef7dfda0dc 19-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: calculate masks in format desired by shader

Also remove branches calculating masks for quads.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
3fd6b724cc406573cf53684cd72fa7f60b65354a 19-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: pre-multiply some constants by fixed_one
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
2f5f357c5b67869e75087fc1f17ed0d666fb134e 19-Oct-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Reshape the shader input from 8x2 to 4x4.

Incorrect rendering until the interpolation code generation is updated.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
0580079864c41c236a4167a1543b1a2fc5090362 19-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: fixed-point rasterization
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
0177c6e66cfddeb62feca86e7bd5ae763b9b5244 10-Oct-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Only invoke the shader if necessary.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
8c80413360855106734068066382be8c3a46a64f 09-Oct-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Fix type in tri bounding box check.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
da1808ccc9a53fdd5aa69efa800ece0d3d075b07 09-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: just bin whole tiles for now
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
e215f94f15fd20919cc0ed500dc2efde4f076516 09-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: get lp_setup_tri building
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
4cdd10cb4b60d85f6c231a26739f7d5e264a05e5 09-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: use union lp_cmd_rast_arg directly, rather than through a pointer

The union itself consists of pointers. We don't need to be passing
pointer to pointers.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
1814395b7ef3506935ae1f12630cdd602e15cd55 08-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: triangle struct owns its copy of shader inputs
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
21489d2275ff556f6e44008d3f5493ca64619696 08-Oct-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Remove quad headers.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
7ef36171d5d58b97ffa179f824d77a9c339a7ae4 08-Oct-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Call lp_rast_shade_quads from tri rasterizer.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
c7227f4b8d76d70b4f7ab8d384befd823c2be03e 08-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: rast_tri updates
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
f92787679d668bd1f48929da49d4df55be635fa9 08-Oct-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: More assorted build fixes.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
d614ced756f2cca64ec83b122da4cd028c08c0eb 08-Oct-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Update includes and copyright headers.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c
e529170c11d3cb5812aabeff0a6ee2d7a2ea66f2 08-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: more wipping
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_rast_tri.c