summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_setup.c
AgeCommit message (Collapse)Author
2010-03-25Revert "llvmpipe: optimize the lp_setup_fence() function"Brian Paul
This reverts commit a9063cad0f0190ff88cd20fbad5aa87bf1a943f6. Not too surprisingly, this change caused some regressions. Revert it for the time being. See fd.o bug 27320.
2010-03-24llvmpipe: optimize the lp_setup_fence() functionBrian Paul
Avoid emitting fences when not needed. Speeds up glReadPixels quite a bit when reading image row by row.
2010-03-24llvmpipe: fix texture reference counting bugBrian Paul
We weren't saving the per-scene texture references at the right point. Fixes piglit cubemap segfault. The segfault resulted from referencing texture memory which was prematurely freed because of a missed reference count. Fixes fd.o bug 27276.
2010-03-18gallivm/llvmpipe: simplify front/back stencil ref value handlingBrian Paul
Instead of passing an array, just pass two scalar values.
2010-03-17llvmpipe: added stencil ref values to jit context stateBrian Paul
2010-03-13Merge commit 'origin/master' into gallium-sampler-viewKeith Whitwell
Conflicts: src/gallium/auxiliary/util/u_tile.c src/gallium/auxiliary/util/u_tile.h src/gallium/drivers/identity/id_context.c src/gallium/drivers/llvmpipe/lp_setup.c src/gallium/drivers/llvmpipe/lp_setup.h src/gallium/drivers/softpipe/sp_tex_tile_cache.c src/gallium/include/pipe/p_context.h src/mesa/state_tracker/st_cb_bitmap.c src/mesa/state_tracker/st_cb_drawpixels.c
2010-03-13llvmpipe: Obey rasterization rules.José Fonseca
Replicates softpipe.
2010-03-13llvmpipe: setup_context -> lp_setup_contextJosé Fonseca
Otherwise IDEs and debuggers have trouble distinguishing from softpipe's setup_context.
2010-03-11gallivm/llvmpipe: replace 'int stride' with 'int row_stride[MAX_LEVELS]'Brian Paul
The stride depends on the mipmap level. Rename to row_stride to distinguish from img_stride for 3D textures. Fixes incorrect texel addressing in small mipmap levels.
2010-03-10llvmpipe: fix loop over mipmap levelsBrian Paul
2010-03-10Merge branch 'master' into gallium-sampler-viewMichal Krol
Conflicts: src/gallium/auxiliary/Makefile src/gallium/auxiliary/SConscript src/gallium/auxiliary/tgsi/tgsi_exec.c src/gallium/auxiliary/util/u_blitter.c src/gallium/drivers/i915/i915_context.h src/gallium/drivers/i965/brw_context.h src/gallium/drivers/llvmpipe/lp_context.h src/gallium/drivers/nv50/nv50_context.h src/gallium/drivers/nv50/nv50_state_validate.c src/gallium/drivers/nv50/nv50_tex.c src/gallium/drivers/r300/r300_blit.c src/gallium/drivers/r300/r300_context.h src/gallium/drivers/r300/r300_emit.c src/gallium/drivers/r300/r300_state.c src/gallium/drivers/softpipe/sp_context.h src/gallium/drivers/svga/svga_context.h src/gallium/drivers/svga/svga_pipe_sampler.c
2010-03-09Merge commit 'origin/master' into gallium-sw-api-2Keith Whitwell
Conflicts: src/gallium/drivers/llvmpipe/lp_setup.c src/gallium/drivers/softpipe/sp_texture.c src/gallium/drivers/softpipe/sp_winsys.h src/gallium/state_trackers/egl/common/egl_g3d.c src/gallium/state_trackers/egl/x11/native_x11.c src/gallium/state_trackers/egl/x11/native_x11.h src/gallium/state_trackers/egl/x11/native_ximage.c
2010-03-08llvmpipe/gallivm: checkpoint: array of pointers to mipmap levelsBrian Paul
Change the texture data_ptr from just a single image pointer to an array of image pointers, indexed by mipmap level. We'll use this for mipmap filtering. For now, the mipmap level is hard-coded to zero.
2010-03-05llvmpipe: added code to set texture depth, max mipmap levels infoBrian Paul
2010-03-04gallium: fix llvmpipe after winsys moveKeith Whitwell
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