summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_rast.c
AgeCommit message (Collapse)Author
2010-03-31llvmpipe: Disable threads by default on embedded.José Fonseca
2010-03-25llvmpipe: disable an assertionBrian Paul
We shouldn't try to clear a non-existant z/stencil buffer, so there's probably a bug elsewhere. Disable the assertion for now to allow things to at least run.
2010-03-24llvmpipe: call lp_fence_signal()Brian Paul
2010-03-18gallivm/llvmpipe: added lp_rast_shader_inputs::facing and pass throughBrian Paul
The triangle rasterizer sets this field to indicate front/back-facing. It gets passed into the generated fragment code as another parameter. Used now for stencil front/back selection but will also be used for fragment shaders in general (see TGSI_SEMANTIC_FACE). With this commit two-sided stenciling mostly works but there's still a bug or two...
2010-03-18llvmpipe: defines for RAST_WHOLE, RAST_EDGE_TESTBrian Paul
2010-03-13llvmpipe: Don't use texture transfer internally.José Fonseca
Now that transfers are context objects their sideeffects must happen in order when used by the state tracker, but that synchronization must be bypassed when used inside the driver, or it would cause infinite recursion.
2010-03-05llvmpipe: add pipe_thread_wait() callsBrian Paul
Wait for threads to exit before cleaning up per-thread data. Fixes hang on context destruction with glean makeCurrent test. See fd.o bug 26536.
2010-03-02llvmpipe: remove some ifdefsKeith Whitwell
No longer any need to protect expensive asserts with #ifdef DEBUG.
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-24llvmpipe: clean up rasterization threads upon context destructionBrian Paul
Fixes glean hang, bug 26536.
2010-02-24llvmpipe: more lp_rasterizer_task parameter passingBrian Paul
2010-02-24llvmpipe: pass fewer parameters to rasterization functionsBrian Paul
2010-02-23llvmpipe: added assertions to verify that scene is emptyBrian Paul
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: added counters for color tile clear, load, storeBrian Paul
2010-02-08llvmpipe: export the tgsi translation code to a common layerZack Rusin
the llvmpipe tgsi translation is a lot more complete than what was in gallivm so replacing the latter with the former. this is needed since the draw llvm paths will use the same code. effectively the proven llvmpipe code becomes gallivm.
2010-02-05llvmpipe: Disable multithreading on windows.José Fonseca
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-20llvmpipe: remove tile clipping codeBrian Paul
The surface is always a multiple of the tile size now.
2010-01-19llvmpipe: asst. task-related clean-upsBrian Paul
2010-01-19llvmpipe: remove unneeded DEBUG checks, use step varBrian Paul
2010-01-18llvmpipe: added show_tiles and show_subtiles debug optionsBrian Paul
These options draw lines over the tiles to show the 64x64 tile bounds and 16x16 sub-tile bounds. For debugging/visualization.
2010-01-17llvmpipe: use new u_ringbuffer for scene queueKeith Whitwell
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-13llvmpipe: use one loop in lp_rast_clear_zstencil()Brian Paul
This is just a tiny bit faster.
2010-01-13llvmpipe: optimize lp_rast_clear_color() for non-gray colorsBrian Paul
This makes a big difference in progs that clear to a non-gray color. Some demos are 30-50% faster.
2010-01-13llvmpipe: add bin debuggerKeith Whitwell
Adjust definition of empty_bin according to what's actually in empty bins. We often have a state packet before/after load commands. Still need to do something about the fence packets.
2010-01-13llvmpipe: implement lp_rast_load_zstencilKeith Whitwell
Load zbuffer contents for binned scenes that don't start with a clear and which have a bound zbuffer.
2010-01-13llvmpipe: improve empty-bin test furtherKeith Whitwell
Remove unused param, add comments. Thanks to Brian for review.
2010-01-13llvmpipe: improve empty-bin testKeith Whitwell
We emit at most two clear packets (color and z respectively).
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: remove dead codeKeith Whitwell
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-15llvmpipe: tighten up an assertionBrian Paul
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-11llvmpipe: added lp_rast_fence() bin functionBrian Paul
2009-12-11llvmpipe: added lp_rast_get_num_threads()Brian Paul
2009-12-11llvmpipe: implement lp_rast_load_color()Brian Paul
2009-12-11llvmpipe: checkpoint: more thread/queuing changesBrian Paul
Now mapping/unmapping the framebuffer is done by a rasteizer thread rather than the main calling thread.
2009-12-11llvmpipe: remove unused lp_rasterizer::fb fieldBrian Paul
2009-12-11llvmpipe: improve framebuffer/surface codeBrian Paul
2009-12-11llvmpipe: remove unused fb parameterBrian Paul
2009-12-11llvmpipe: minor comment fixBrian Paul
2009-12-10llvmpipe: checkpoint: use empty/full bin queuesBrian Paul
2009-12-09llvmpipe: added some debug/info codeBrian Paul
2009-12-09llvmpipe: use the empty_bins queue nowBrian Paul