History log of /external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
1ec421823b1263a7b482adf48a15b186ea91efd2 17-May-2012 Olivier Galibert <galibert@pobox.com> llvmpipe: Don't mess with the provoking vertex when inverting a triangle.

Fixes a bunch of piglit tests related to flat interpolation of floats.

Signed-off-by: Olivier Galibert <galibert@pobox.com>
Signed-off-by: José Fonseca <jose.r.fonseca@gmail.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
24678700edaf5bb9da9be93a1367f1a24cfaa471 14-May-2012 James Benton <jbenton@vmware.com> llvmpipe: Calculate fixed point coordinates for triangle setup earlier.

This allows us to calculate the triangle's area using fixed point,
previously it was cacluated in floating point space. It was possible
that a triangle which had negative area in floating point space had
a positive area in fixed point space.

Fixes fdo 40920.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
11aa82cc0bda6bd9162f76553a3f68e28978edae 10-May-2012 James Benton <jbenton@vmware.com> llvmpipe: Fix triangle bounding box calculation to be correctly inclusive or exclusive

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_setup_tri.c
e2072a1046039403d814613553e7b3b563d43dfc 05-Oct-2011 José Fonseca <jfonseca@vmware.com> llvmpipe: Fix the 4 planes (lines) case properly.

The previous change was not effective for lines, because there is no
4 planes 4x4 block rasterization path: it is handled by the 16x16 block
case too, and the 16x16 block was not being budged as it should.

This fixes assertion failures on line rasterization.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
c8f1687ce70c3a2e0de7a7d50e1619cb4cf8cc50 05-Nov-2010 Brian Paul <brianp@vmware.com> llvmpipe: added some debug assertions, but disabled
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
98445b43071414a6bd82d0618002611c6ad70257 02-Nov-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: avoid generating tri_16 for tris which extend past tile bounds

Don't trim triangle bounding box to scissor/draw-region until after
the logic for emitting tri_16. Don't generate tri_16 commands for
triangles with untrimmed bounding boxes outside the current tile.

This is important as the tri-16 itself can extend past tile bounds and
we don't want to add code to it to check against tile bounds (slow) or
restrict it to locations within a tile (pessimistic).
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
9da17fed2e7645a401a378ae690eb23513948e18 18-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: remove unused arg from jit_setup_tri function
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
0072acd447dc6be652e63752e50215c3105322c8 18-Oct-2010 Keith Whitwell <keithw@vmware.com> Merge remote branch 'origin/master' into lp-setup-llvm

Conflicts:
src/gallium/drivers/llvmpipe/lp_setup_coef.c
src/gallium/drivers/llvmpipe/lp_setup_coef.h
src/gallium/drivers/llvmpipe/lp_setup_coef_intrin.c
src/gallium/drivers/llvmpipe/lp_setup_point.c
src/gallium/drivers/llvmpipe/lp_setup_tri.c
src/gallium/drivers/llvmpipe/lp_state_derived.c
src/gallium/drivers/llvmpipe/lp_state_fs.h
ca2b2ac131933b4171b519813df1aaa3a81621cd 18-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: fail cleanly on malloc failure in lp_setup_alloc_triangle
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
9f9a17eba8d6080bf30f17c8a7eaed97b10a559f 12-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: do plane calculations with intrinsics

This is a step towards moving this code into the rasterizer.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
8965f042b327ad8697963e757f4607f4bb13a045 15-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: don't store plane.ei value in binned data

Further reduce the size of a binned triangle.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
0a1c9001037a13b69b157994e7983aa3dee158d3 15-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: don't pass frontfacing as a float
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
4195febeecd2d2f5571afdb90cbb185a4759f50a 15-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: reintroduce SET_STATE binner command

But bin lazily only into bins which are receiving geometry.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
0ca0382d1bfd1e9128fa4b588ce1411f7b8a85df 12-Oct-2010 Keith Whitwell <keithw@vmware.com> Revert "llvmpipe: try to keep plane c values small"

This reverts commit 9773722c2b09d5f0615a47cecf4347859474dc56.

Looks like there are some floor/rounding issues here that need
to be better understood.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
9773722c2b09d5f0615a47cecf4347859474dc56 12-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: try to keep plane c values small

Avoid accumulating more and more fixed point bits.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
eeb13e2352d7a44881b011cb3232bb80aee0c826 23-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: clean up setup_tri a little
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
29d6a1483d6c4ecb9c34989423e025b3784ec019 08-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: avoid overflow in triangle culling

Avoid multiplying fixed-point values. Calculate triangle area in
floating point use that for culling.

Lift area calculations up a level as we are already doing this in the
triangle_both() case.

Would like to share the calculated area with attribute interpolation,
but the way the code is structured makes this difficult.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
ad6730fadbbeacea96322e31064ede9ea7ebad6f 08-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: fail gracefully on oom in scene creation
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
72258387786332c49b3275b8136a99be7591bf7f 24-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: handle up to 8 planes in triangle binner
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
5b4c43d98556c5a4806757513bcb196a724518c5 05-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: use llvm for attribute interpolant calculation

Basically no change relative to hard-coded version, but this will
be useful for other changes later.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
59ca1ae84b2c15c8a94211da158f563e45560bcd 15-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: return zero from floor_pot(zero)
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
c40858fa0dac28dc5096973ac267630ba5725003 13-Sep-2010 Witold Baryluk <baryluk@smp.if.uj.edu.pl> llvmpipe: Change asm to __asm__.

According to gcc documentation both are equivalent,
second are prefered as first can make conflict with existing symbols.

Signed-off-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
501d43028e8e551dd36ede00fb85095183c32037 13-Sep-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Unbreak rasterization on 64bit.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
b97c75e6a3a95be503f0509be0791a21b4d0f8d8 13-Sep-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: use gcc asm only with gcc
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
4b56e86e67d281b1c57f1f5e6b1a686d0dcd6ebb 08-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: allow tri_3_16 at any 4-aligned location within a tile

Doesn't require 16-alignment, so catch more cases.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
9df8a7565db608eaccf917632bf6c702203531b8 01-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: move more coef setup into lp_setup_coef.c
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
9f6e8e1d6b8696a3ee96cba01b2466ba7a1a8ef6 07-Sep-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: use opcodes instead of function pointers in bins

Also, move some state from rasterizer struct to the scene.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
6419ecd02ce43a2614822e228f306d4db589f317 27-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: enforce fixed memory limit on scenes
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
5024d9b90e88cdc3d8aca14d45cf845efbfb8633 27-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: move whole-tile emit into a function
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
3783053fa59fceef59fe0356af5c8dbc095e9adf 26-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: update line rasterization code to current master
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
0be0ad5d58806bc12ec2c7bb3c00e7f8c7a6d6c4 22-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: intrinsics version of triangle coeficient calculation

Looks nice, but makes almost no impact on performance - maybe
a percent or so in isosurf, nothing elsewhere. May be of use
later on.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
29bcbf5e797a18430285c75abb8a9300c8defe1d 24-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: track drawing region as a single u_rect
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
d808f7b53ec71a7684bac7e6b536911fc27d5238 24-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: better triangle debugging
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
c25151dd6a06acd93c8bf0d9e79fdcf134ffe818 20-Aug-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: cull zero-area triangles early
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_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_setup_tri.c
66f57235d5e507b17f3cbf1329a803337ca08666 11-Aug-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Debug code to dump interpolation coefficients.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
3deca2e284f0709e94bec5267febc7ccb34c17b8 11-Aug-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Use single precision divide for one over area computation.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
d023fb39288be943d1c8ec5a60e9ff5778f4642f 14-Jul-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Remove redundant alignments.

The lp_rast_shader_inputs' alignment is irrelevant now that it contains
pointers instead of actual data.

Likewise, lp_rast_triangle's size alignment is meaningless.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
e21e7ab4da859198dfa9845b4a7207c49db54771 10-Jul-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: eliminate the set_state rasterizer command

Just put a pointer to the state in the tri->inputs struct. Remove
some complex logic for eliminating unused statechanges in bins at the
expense of a slightly larger triangle struct.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
4ca3e0d84ba21ac4e37ecea0eed05a0bfcb3f098 24-Jun-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Don't reset the bin when there's a zsbuf bound.

The previous rendering may have secondary effects on the zsbuf.

Fixes the missing tiles on gearbox.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
6ce68ad3ca242076bbb93fdd99bb448f87a31d15 01-Jun-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Use struct lp_shader_input in the interpolator.

Eliminates all this identical yet slightly different code to decide how
shader inputs should be interpolated.

As bonus, don't interpolate the position twice when it is listed in the
TGSI shader inputs.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
149cb7682e37ce719d693f120e68dde60ba73bdf 01-Jun-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Don't waste time interpolating unused input channels.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
18fb9ff6d8f58a08e559070cf29f26ed0caa567f 26-May-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Pass the fs variant to the rasterizer.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
151b3bb3af722f0e14e209171acc2239d3cf2817 28-May-2010 Brian Paul <brianp@vmware.com> llvmpipe: add out of memory checking to triangle setup path
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
e5ee8b4fae2983512f9c70f2f021fc8c35e62a75 17-May-2010 Brian Paul <brianp@vmware.com> llvmpipe: fix front/back tri culling mix-up
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
0bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72c 14-May-2010 Keith Whitwell <keithw@vmware.com> gallium: convert rasterizer state to use gl-style front/back concepts

Use front/back instead of cw/ccw throughout.
Also, use offset_point/line/fill instead of offset_cw/ccw.

Brings gallium representation of this state into line with its main
user, and also what turns out to be the most common hardware
representation.

This fixes a long-standing bias in the interface towards the
architecture of the software rasterizer.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
246d39059e21bdc840128d448bcd79a957bbd1d1 05-May-2010 Brian Paul <brianp@vmware.com> llvmpipe: update driver's provoking vertex code

Note that the lp_setup_vbuf.c code is very, very similar to the
corresponding code in softpipe. It could probably be shared.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
db4ccc004a96255f3ad0dc26467f2243a133c24b 20-Apr-2010 Brian Paul <brianp@vmware.com> llvmpipe: fix incorrect front-facing value for fragment shader

The TGSI convention is +1 for front-facing, -1 for back-facing
Fixes glean glsl1 gl_FrontFacing tests.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
a59771fb5305a4a8bda35bc7175eceecd0a950ee 17-Apr-2010 Brian Paul <brianp@vmware.com> llvmpipe: triangle function comments
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
8ba14fab9a8fb4b7e7224062693ab4d487a138b8 16-Apr-2010 Brian Paul <brianp@vmware.com> llvmpipe: print_triangle() func (disabled)
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
22e6dc387039e79f6d1435ae8b7422a6514d5d10 18-Mar-2010 Brian Paul <brianp@vmware.com> gallivm/llvmpipe: added lp_rast_shader_inputs::facing and pass through

The triangle rasterizer sets this field to indicate front/back-facing.
It gets passed into the generated fragment code as another parameter.
Used now for stencil front/back selection but will also be used for
fragment shaders in general (see TGSI_SEMANTIC_FACE).

With this commit two-sided stenciling mostly works but there's
still a bug or two...
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
a80e33f40731f07e8a39896bfdcd1b1504aedc1f 13-Mar-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Obey rasterization rules.

Replicates softpipe.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
3160cbabccf1f7d8bdf344242507b9c3082f15c6 13-Mar-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: setup_context -> lp_setup_context

Otherwise IDEs and debuggers have trouble distinguishing from softpipe's
setup_context.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
4053d337035a17c3bded6458093acf56d1878cba 03-Mar-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Store the original triangle coordinates in the debug build.

For debugging purposes only.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
764c172aa96d48e1cf18b903661064c1ef8df1b5 11-Feb-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Clamp both extremes of triangles to framebuffer size.

Fix segmentation fault when triangles crossed the axis.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
1d23954a0848f8dd87b214f3a7ec3ae3c04ab0c1 22-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: s/inline/INLINE/
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
e24ea786faad502da63cc4d59b0c30e3f1915c45 22-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: consolidate lp_scene_alloc_aligned() calls

Use just one call instead of four. Good for a few more fps.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
798a9d3f942df1953a538073c85d6a6fed3775db 22-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: re-use a1 var in linear_coef()
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
ff9b55da9a6e3b5aa2d42eac7d79c675a679af57 22-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: area is an int here, not float
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
a904a7b99043c19493db5c0945b046795a5932b1 22-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: manually unroll the inputs.step[] setup code

Good for a few more fps in some tests.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
75f262b8b441e05f5b8811db1c205220200d64ad 19-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: updated comments
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
fdfe06ad804ea13e6e436d66c1bcafe0bde2f545 15-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: implement scissor test in triangle setup
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
adb48d535082f5a311751e1866997e381b2d3038 15-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: remove lp_rast_triangle::min/max fields

These values aren't needed outside the do_triangle_ccw() function.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
4bef3575e605d890d9f228391b4724d27b025f49 15-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: change 'in' to boolean, add comments
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
ca12e30d97b83fb33e1f8f83da05b5ed2809b0af 15-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: minor comment update
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
f19f218e7aad76639a6aacabda8101ba87bb4896 14-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: minor assorted clean-ups
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
a1acbff299c444913418e65da473745cd901a2db 13-Jan-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Reset the bin when shading a whole tile with an opaque shader.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
212f3a6cb3cb49127a6e5588553fe2d327f46563 13-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: tweak subpixel_snap() arithmetic

This adjustment fixes some rasterization differences between llvmpipe
and softpipe (and other renderers).
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
214ffad01598c8780417b9fa9df75e951c8ac049 13-Jan-2010 Brian Paul <brianp@vmware.com> llvmpipe: clamp maxx,maxy to framebuffer size (in terms of tiles)

In some corner cases the right-most / bottom-most vertex can be
right on the edge of the framebuffer. Because the maxx, maxy vals
are computed with a series of float/int, pixel/tile transformations
we can end up with maxx >= scene->x_tiles or maxy >= scene->y_tiles.
This leads to putting data into bins that never get processed, or
reset. This becomes stale data that can lead to segfaults.

Clamping fixes this.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
094525fb23127e7ca253d732207bbbbe00488a6b 08-Jan-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: remove opencoded constant
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
080c40ab32b2abd6d8381b4a0cc143d36a1652b2 08-Jan-2010 José Fonseca <jfonseca@vmware.com> Merge remote branch 'origin/master' into lp-binning

Conflicts:
src/gallium/auxiliary/util/u_surface.c
src/gallium/drivers/llvmpipe/Makefile
src/gallium/drivers/llvmpipe/SConscript
src/gallium/drivers/llvmpipe/lp_bld_arit.c
src/gallium/drivers/llvmpipe/lp_bld_flow.c
src/gallium/drivers/llvmpipe/lp_bld_interp.c
src/gallium/drivers/llvmpipe/lp_clear.c
src/gallium/drivers/llvmpipe/lp_context.c
src/gallium/drivers/llvmpipe/lp_context.h
src/gallium/drivers/llvmpipe/lp_draw_arrays.c
src/gallium/drivers/llvmpipe/lp_jit.c
src/gallium/drivers/llvmpipe/lp_jit.h
src/gallium/drivers/llvmpipe/lp_prim_vbuf.c
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/llvmpipe/lp_setup_point.c
src/gallium/drivers/llvmpipe/lp_state.h
src/gallium/drivers/llvmpipe/lp_state_blend.c
src/gallium/drivers/llvmpipe/lp_state_derived.c
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/gallium/drivers/llvmpipe/lp_state_sampler.c
src/gallium/drivers/llvmpipe/lp_state_surface.c
src/gallium/drivers/llvmpipe/lp_tex_cache.c
src/gallium/drivers/llvmpipe/lp_tex_cache.h
src/gallium/drivers/llvmpipe/lp_tex_sample.h
src/gallium/drivers/llvmpipe/lp_tile_cache.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_setup_tri.c
663750d5564a225b4720f7ee8bea93ffb309fc88 13-Dec-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: rename bins to scene

It was pretty confusing having an entity named "bin" and another named
"bins", not least because sometimes there was a need to talk about >1
of the "bins" objects, which couldn't be pluralized any further...

Scene is a term used in a bunch of places to talk about what a binner
operates on, so it's a decent choice here.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
22b07b8be4c2939b00e10f17fa91e68682808594 09-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: use new lp_setup_get_current_bins() function

This stub function will interface to the queue system...
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
01b1900084152dbacd4025a31ced25f75666ce59 04-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: reorganization of binning data structions and funtions

New lp_bins struct contains all bin information.
More move bin-related code into lp_bin.[ch]
Use new/updated bin-access functions to hide implementation details.
The result is more/cleaner separation between the setup and rast components.
This will make double-buffering of the bins easier, etc.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
d9dc3d59760a28d54013d3d164f61d85ec807651 04-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: move bin-related structures and functions into new lp_bin.[ch]

And put lp_ prefixes on some functions.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
5c7d1b592ad9ce9e7ee36610f17d41e5c2881d54 04-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: remove lp_rast_triangle::oneoverarea field

Makes lp_rast_triangle a little smaller (now 280 bytes on a 32-bit system).
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
b1659b9213f3eeee440590dfe379f0d193948307 04-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: bin state-change commands

Previously, each triangle had a pointer to the state to use for shading.
Now we insert state-change commands into the bins. When we execute one
of those commands we just update a 'current state' pointer and use that
pointer when calling the jit shader.

When inserting state-change commands into a bin we check if the previous
command was also a state-change command and simply replace it. This
avoids accumulating useless/redundant state-change commands.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
1796ffd3bcf74a94c800717e77abaf9902c50b4d 04-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: fix typo, whitespace
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
04e12e31b252e7a18862c3ac386f302665edb6e7 04-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: dynamic allocation of triangle a0/dadx/dady arrays

Much less memory per triangle now.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
30c122a4c90b62ad3d6b7bacb61c04dd38a4b2df 04-Dec-2009 Brian Paul <brianp@vmware.com> llvmpipe: new comment in do_triangle_ccw()
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
7505510c7b7c33f3c571647c0398da7e1b823806 30-Nov-2009 Brian Paul <brianp@vmware.com> llvmpipe: add a bunch of comments
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
694f05ac18c54253910678709f2dd35c36f1e912 21-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: remove one of two definitions of TILESIZE
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
341edde1d2e9f9f989d41869cc436b51942941e4 21-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: remove dead code
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
cccb1842092bd1b9f35aee0ac21d580c0365e4a5 20-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: minor opts to setup_tri
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
7b116e13a2aa28a699e30c907c1b1ae5e04cab28 20-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: pass mask as a linear encoding of the 4x4 block
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
7670628061c2a6ce0a1a787556b0e33a38fd3049 20-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: precalculate some offsets
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
0580079864c41c236a4167a1543b1a2fc5090362 19-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: fixed-point rasterization
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
269342d916fff3bf0fa0a5c1f26aec30b62ed352 19-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: correctly scale top/left fill adjustments

Was overdoing it previously.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
d9f44abe3bb0c9897937ef7f343a7896a0b4cbf0 19-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: fix typo correcting for fill convention

Adjustments for top-left fill convention were being lost.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
b4924d62c7346da2e0de9ae4f9f23b3fb7fafee8 09-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: fill in tri min/max values
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
6464ec48366fee201c61a481c3205a64279797b2 09-Oct-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Remove partial tile override.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
82ec7f018d20e46e9c43ea467354dcfe4f03bae3 09-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: correct binning maths for iterating over whole tiles
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
85999695829823e459e11822b4846ed1db5c055d 09-Oct-2009 José Fonseca <jfonseca@vmware.com> llvmpipe: Get jit_context/jit_function across the rasterizer.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
e215f94f15fd20919cc0ed500dc2efde4f076516 09-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: get lp_setup_tri building
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_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_setup_tri.c
415b271b5100d64579690111bc8eb549866865a7 09-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: hook up some state, add stub line and point functions
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
de902d3275d1861beb0cebdf0807a17e2682c8de 09-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: more wip on coefficients
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
0718c7700533a965d7cd06b4f67b82bbae6e66a1 08-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: work on clears and coefficients
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
931210424bc46b2c13919f0ac3e0ef781eff207e 08-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: wip me harder
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
5e13dfe6181952f0f538a77b8a9f91c1d7601ceb 08-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: whip out the intra-tile code from lp_setup_tri.c

The "setup" module handles building per-tile display lists.
Intra-tile rendering is handled by lp_rast*.c
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
e529170c11d3cb5812aabeff0a6ee2d7a2ea66f2 08-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: more wipping
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
89498d01531cd515c769e570bf799c39fbafc8fb 07-Oct-2009 Keith Whitwell <keithw@vmware.com> llvmpipe: import experimental softpipe rasterizer code, wip binning code

WIP, does't build or run.

Rasterizer code is based on Nick Capen's devmaster posts and the
larrabee articles, but currently doesn't share either the performance
or correctness of either...
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c