summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_setup.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.
2010-01-14llvmpipe: implement scissor testingBrian Paul
The scissor test is implemented as another per-quad operation in the JIT code. The four scissor box params are passed via the lp_jit_context. In the JIT code we compare the quad's x/y coords against the clip bounds and create a new in/out mask that's AND'd with the main quad mask. Note: we should also do scissor testing in the triangle setup code to improve efficiency. That's not done yet.
2010-01-13llvmpipe: check render targets before other texturesBrian Paul
2010-01-13llvmpipe: also check render target textures in lp_setup_is_texture_referenced()Brian Paul
2010-01-13llvmpipe: indentation fixesBrian Paul
2010-01-13llvmpipe: re-get scene pointer after flushingBrian Paul
2010-01-13llvmpipe: check for texture usage in all scenesBrian Paul
2010-01-13llvmpipe: add scene texture referencing codeBrian Paul
2010-01-13llvmpipe: Reset the bin when shading a whole tile with an opaque shader.José Fonseca
2010-01-13llvmpipe: quick hack to short-circuit empty binsKeith Whitwell
2010-01-10llvmpipe: initial mrt supportKeith Whitwell
Non-mrt apps work, and the code looks correct, but not many mrt test apps handy atm...
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
2010-01-06llvmpipe: fix double freeKeith Whitwell
2010-01-06llvmpipe: merge setup and draw vbuf submodulesKeith Whitwell
The setup tiling engine is now plugged directly into the draw module as a rendering backend. Removed a couple of layering violations such that the setup code no longer reaches out into the surrounding llvmpipe state or context.
2009-12-17Move the remaining format pf_get_* functions to u_format.h.Michal Krol
Previously they depended on format blocks, but after removing those they started depending on format encoding.
2009-12-17llvmpipe: keep copy of framebuffer state in setup contextKeith Whitwell
Avoids crashes when first frame is rendered before window is mapped. Avoids potential issue where fb state is changed before setup context is flushed.
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-12llvmpipe: rename queue size to countKeith Whitwell
2009-12-12llvmpipe: rename one of the two rasterize_bins functionsKeith Whitwell
2009-12-11llvmpipe: checkpoint: plug in the new fencing codeBrian Paul
This has only been very lightly tested. More work to come.
2009-12-10llvmpipe: updated commentBrian Paul
2009-12-09llvmpipe: simplify the tiles_x, tiles_y code a bitBrian Paul
2009-12-09llvmpipe: use the empty_bins queue nowBrian Paul
2009-12-09llvmpipe: checkpoint: begin plugging in bin queue codeBrian Paul
2009-12-09llvmpipe: use new lp_setup_get_current_bins() functionBrian Paul
This stub function will interface to the queue system...
2009-12-04llvmpipe: still more bin code reorganizationBrian Paul
Move tiles_x,y fields from setup state into bin state. Move more bin-adding commands into lp_bin.[ch].
2009-12-04llvmpipe: remove dead code left over from a previous commitBrian Paul
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 lp_rasterize_bin() into lp_rast.cBrian Paul
First step of moving bin rasterization/execution code out of lp_setup.c
2009-12-04llvmpipe: simplify framebuffer state codeBrian Paul
2009-12-04llvmpipe: use LP_DBG() macro everywhereBrian Paul
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: 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: struct cmd_binBrian Paul
Just introducing a new structure to represent a per-tile bin.
2009-12-03llvmpipe: comment about blend colorBrian Paul
2009-12-03llvmpipe: fix incorrect array indexing when saving blend colorBrian Paul
2009-12-03llvmpipe: checkpoint some initial state binning codeBrian Paul
2009-12-03llvmpipe: set LP_SETUP_NEW_FS in lp_setup_set_fs()Brian Paul
Fixes progs/trivial/tri-blend.c, but I think we're just getting lucky in this case.
2009-12-03llvmpipe: more debug infoBrian Paul
2009-12-02gallium: adapt drivers to interface cleanupsRoland Scheidegger
2009-11-30llvmpipe: minor refactoring of bin rasterization codeBrian Paul
2009-11-03llvmpipe: remove old prim_setup draw stageKeith Whitwell
Everything now goes through the draw_vbuf handler, the same as regular drivers. Based on Keith's commit 4fe0fc3eba1f79beda890a5016359d549bab6ad4.
2009-11-03llvmpipe: Respect gl_rasterization_rules in primitive setup.José Fonseca
Based on Michal's identical commit for softpipe (ca9c413647bf9efb5ed770e3a655bc758075aec7).
2009-10-22llvmpipe: Avoid yet another variable size array.José Fonseca
2009-10-21llvmpipe: remove one of two definitions of TILESIZEKeith Whitwell
2009-10-19llvmpipe: Reset the pointer to stored jit context.José Fonseca
2009-10-19llvmpipe: Allocate the blend color from the data store, and ensure it's aligned.José Fonseca
2009-10-18llvmpipe: Maintain a copy of the shader constants to prevent clobbering.José Fonseca
2009-10-14llvmpipe: Use ALIGN_STACK.José Fonseca
2009-10-09llvmpipe: Additional checks for binner block lists.José Fonseca