summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_rast_tri.c
AgeCommit message (Collapse)Author
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