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
|