summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_setup_tri.c
AgeCommit message (Collapse)Author
2010-01-19llvmpipe: updated commentsBrian Paul
2010-01-15llvmpipe: implement scissor test in triangle setupBrian Paul
2010-01-15llvmpipe: remove lp_rast_triangle::min/max fieldsBrian Paul
These values aren't needed outside the do_triangle_ccw() function.
2010-01-15llvmpipe: change 'in' to boolean, add commentsBrian Paul
2010-01-14llvmpipe: minor comment updateBrian Paul
2010-01-13llvmpipe: minor assorted clean-upsBrian Paul
2010-01-13llvmpipe: Reset the bin when shading a whole tile with an opaque shader.José Fonseca
2010-01-13llvmpipe: tweak subpixel_snap() arithmeticBrian Paul
This adjustment fixes some rasterization differences between llvmpipe and softpipe (and other renderers).
2010-01-12llvmpipe: clamp maxx,maxy to framebuffer size (in terms of tiles)Brian Paul
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.
2010-01-11llvmpipe: remove opencoded constantKeith Whitwell
2010-01-08Merge remote branch 'origin/master' into lp-binningJosé Fonseca
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
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-13llvmpipe: rename bins to sceneKeith Whitwell
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.
2009-12-09llvmpipe: use new lp_setup_get_current_bins() functionBrian Paul
This stub function will interface to the queue system...
2009-12-04llvmpipe: reorganization of binning data structions and funtionsBrian Paul
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.
2009-12-04llvmpipe: move bin-related structures and functions into new lp_bin.[ch]Brian Paul
And put lp_ prefixes on some functions.
2009-12-04llvmpipe: remove lp_rast_triangle::oneoverarea fieldBrian Paul
Makes lp_rast_triangle a little smaller (now 280 bytes on a 32-bit system).
2009-12-04llvmpipe: bin state-change commandsBrian Paul
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.
2009-12-04llvmpipe: fix typo, whitespaceBrian Paul
2009-12-04llvmpipe: dynamic allocation of triangle a0/dadx/dady arraysBrian Paul
Much less memory per triangle now.
2009-12-03llvmpipe: new comment in do_triangle_ccw()Brian Paul
2009-11-30llvmpipe: add a bunch of commentsBrian Paul
2009-10-21llvmpipe: remove one of two definitions of TILESIZEKeith Whitwell
2009-10-21llvmpipe: remove dead codeKeith Whitwell
2009-10-20llvmpipe: minor opts to setup_triKeith Whitwell
2009-10-20llvmpipe: pass mask as a linear encoding of the 4x4 blockKeith Whitwell
2009-10-20llvmpipe: precalculate some offsetsKeith Whitwell
2009-10-19llvmpipe: pre-multiply some constants by fixed_oneKeith Whitwell
2009-10-19llvmpipe: fixed-point rasterizationKeith Whitwell
2009-10-19llvmpipe: correctly scale top/left fill adjustmentsKeith Whitwell
Was overdoing it previously.
2009-10-19llvmpipe: fix typo correcting for fill conventionKeith Whitwell
Adjustments for top-left fill convention were being lost.
2009-10-09llvmpipe: fill in tri min/max valuesKeith Whitwell
2009-10-09llvmpipe: Remove partial tile override.José Fonseca
2009-10-09llvmpipe: correct binning maths for iterating over whole tilesKeith Whitwell
2009-10-09llvmpipe: Get jit_context/jit_function across the rasterizer.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-09llvmpipe: hook up some state, add stub line and point functionsKeith Whitwell
2009-10-09llvmpipe: more wip on coefficientsKeith Whitwell
2009-10-08llvmpipe: work on clears and coefficientsKeith Whitwell
2009-10-08llvmpipe: wip me harderKeith Whitwell
2009-10-08llvmpipe: whip out the intra-tile code from lp_setup_tri.cKeith Whitwell
The "setup" module handles building per-tile display lists. Intra-tile rendering is handled by lp_rast*.c
2009-10-08llvmpipe: more wippingKeith Whitwell
2009-10-08llvmpipe: import experimental softpipe rasterizer code, wip binning codeKeith Whitwell
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...