summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_setup.c
AgeCommit message (Collapse)Author
2010-03-04softpipe: rework to use the llvmpipe winsysKeith Whitwell
Promote the llvmpipe winsys more or less unchanged to state_trackers/sw_winsys.h. Some minor breakages: - softpipe::texture_blanket is broken, but scheduled for removal anyway. - haven't fixed up g3vdl yet.
2010-03-02llvmpipe: reorganize transfer usageKeith Whitwell
Move transfer creation and mapping to the "scene" object, and out of the rasterizer. The rasterizer operates on already-mapped framebuffers only, and no longer needs a screen or context pointer. The scene object has access to a pipe_context, and this reorg prepares for moving transfer functionality from the screen to the context.
2010-02-23llvmpipe: added assertions to verify that scene is emptyBrian Paul
2010-02-14llvmpipe: Silence unused value warning.Vinson Lee
2010-02-10llvmpipe: Map rendertargets when bound as textures.José Fonseca
Fixes gearbox segfault (fdo 25960). Corruption remains.
2010-02-10llvmpipe: Leave depth buffer in swizzled format.José Fonseca
This fixes several assertion failures due to only Z32 being supported.
2010-02-08llvmpipe: s/textured/texture/Brian Paul
2010-02-05Merge remote branch 'origin/lp-binning'José Fonseca
Conflicts: src/gallium/auxiliary/util/u_dl.c src/gallium/auxiliary/util/u_time.h src/gallium/drivers/llvmpipe/lp_state_derived.c src/gallium/drivers/llvmpipe/lp_state_surface.c src/gallium/drivers/llvmpipe/lp_tex_cache.c src/gallium/drivers/llvmpipe/lp_tile_cache.c
2010-01-28llvmpipe: Remove unnecessary header.Vinson Lee
2010-01-27llvmpipe: Remove unnecessary headers.Vinson Lee
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-17llvmpipe: use new u_ringbuffer for scene queueKeith Whitwell
2010-01-15llvmpipe: implement scissor test in triangle setupBrian 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.
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-12gallium: Rename ALIGN_STACK -> PIPE_ALIGN_STACK for consistency.José Fonseca
2010-01-12gallium: Simplify PIPE_ALIGN_VAR.José Fonseca
gcc allows pre-fix variable attributes. Suggested by Ian Romanick.
2010-01-12gallium: Generalize the alignment macros to other compilers and any alignment.José Fonseca
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-10llvmpipe: Fix after sampler view changes.michal
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.