summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_rast_tri.c
AgeCommit message (Collapse)Author
2010-02-24llvmpipe: more lp_rasterizer_task parameter passingBrian Paul
2010-02-24llvmpipe: pass fewer parameters to rasterization functionsBrian Paul
2010-02-24llvmpipe: added some assertionsBrian Paul
2010-02-17llvmpipe: use ffs technique for full tiles alsoKeith Whitwell
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
2010-02-17llvmpipe: rework do_block_16 to use bitmasks and ffsKeith Whitwell
Some nice speedups: gears: 547 -> 597 isosurf: 83 -> 98 Others like gloss unchanged. Could do further work in this direction.
2010-01-21llvmpipe: use some local vars to index step arraysBrian Paul
Saves a few more cycles.
2010-01-21llvmpipe: added simple perf/statistics counting facilityBrian Paul
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.
2010-01-15llvmpipe: skip 4x4 in/out test codeBrian Paul
It's a litte faster to just do the in/out testing in the shader jit code.
2010-01-15llvmpipe: added comment about lookup-tables vs. computationBrian Paul
2010-01-15llvmpipe: generate two shader varients, one omits triangle in/out testingBrian Paul
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.
2009-12-17llvmpipe: replace INT_MIN/2 with INT_MINBrian Paul
Since changing the in/out test we can just use INT_MIN to be sure the comparison against the step values always passes.
2009-12-17llvmpipe: improve the in/out test a littleBrian Paul
Instead of: s = c + step m = s > 0 Do: m = step > c (with negated c)
2009-12-16llvmpipe: do final the pixel in/out triangle test in the fragment shaderBrian Paul
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.
2009-12-07llvmpipe: repartition lp_rasterizer state for threadingBrian Paul
Some of the state is per-thread. Put that state in new lp_rasterizer_task struct.
2009-12-04llvmpipe: use LP_DBG() macro everywhereBrian Paul
2009-12-01llvmpipe: added assertionsBrian Paul
And remove unused BLOCKSIZE.
2009-12-01llvmpipe: simplify mask computationBrian Paul
Make this a little easier to understand.
2009-12-01llvmpipe: replace shifts with multiplies to be clearerBrian Paul
The compiler will still do the multiplies with shifts. It's just a bit easier to follow the logic with multiplies.
2009-12-01llvmpipe: make nr_blocks unsignedBrian Paul
2009-12-01llvmpipe: comments, reformatting and assertions in tri rast codeBrian Paul
2009-10-20llvmpipe: move block list into rast structKeith Whitwell
2009-10-20llvmpipe: build list of 4x4 blocks to be shadedKeith Whitwell
2009-10-20llvmpipe: recursive rasterization within a tileKeith Whitwell
2009-10-20llvmpipe: precalculate some offsetsKeith Whitwell
2009-10-19llvmpipe: calculate masks in format desired by shaderKeith Whitwell
Also remove branches calculating masks for quads.
2009-10-19llvmpipe: pre-multiply some constants by fixed_oneKeith Whitwell
2009-10-19llvmpipe: Reshape the shader input from 8x2 to 4x4.José Fonseca
Incorrect rendering until the interpolation code generation is updated.
2009-10-19llvmpipe: fixed-point rasterizationKeith Whitwell
2009-10-10llvmpipe: Only invoke the shader if necessary.José Fonseca
2009-10-09llvmpipe: Fix type in tri bounding box check.José Fonseca
2009-10-09llvmpipe: just bin whole tiles for nowKeith Whitwell
2009-10-09llvmpipe: get lp_setup_tri buildingKeith Whitwell
2009-10-09llvmpipe: use union lp_cmd_rast_arg directly, rather than through a pointerKeith Whitwell
The union itself consists of pointers. We don't need to be passing pointer to pointers.
2009-10-08llvmpipe: triangle struct owns its copy of shader inputsKeith Whitwell
2009-10-08llvmpipe: Remove quad headers.José Fonseca
2009-10-08llvmpipe: Call lp_rast_shade_quads from tri rasterizer.José Fonseca
2009-10-08llvmpipe: rast_tri updatesKeith Whitwell
2009-10-08llvmpipe: More assorted build fixes.José Fonseca
2009-10-08llvmpipe: Update includes and copyright headers.José Fonseca
2009-10-08llvmpipe: more wippingKeith Whitwell