summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_setup.c
AgeCommit message (Collapse)Author
2010-10-17Merge remote branch 'origin/master' into lp-setup-llvmKeith Whitwell
Conflicts: src/gallium/drivers/llvmpipe/lp_setup_coef.c src/gallium/drivers/llvmpipe/lp_setup_coef.h src/gallium/drivers/llvmpipe/lp_setup_coef_intrin.c src/gallium/drivers/llvmpipe/lp_setup_point.c src/gallium/drivers/llvmpipe/lp_setup_tri.c src/gallium/drivers/llvmpipe/lp_state_derived.c src/gallium/drivers/llvmpipe/lp_state_fs.h
2010-10-08llvmpipe: fail gracefully on oom in scene creationKeith Whitwell
2010-10-06llvmpipe: Cleanup depth-stencil clears.José Fonseca
Only cosmetic changes. No actual practical difference.
2010-09-29llvmpipe: Decouple sampler view and sampler state updates.José Fonseca
Fixes glean pbo crash. It would be possible to avoid crashing without decoupling, but given that state trackers give no guarantee that number of views is consistent, that would likely cause too many state updates (or miss some).
2010-09-24llvmpipe: make texture border_color dynamic stateBrian Paul
2010-09-24llvmpipe: make min/max lod and lod bias dynamic stateBrian Paul
Before, changing any of these sampler values triggered generation of new JIT code. Added a new flag for the special case of min_lod == max_lod which is hit during auto mipmap generation.
2010-09-20llvmpipe: rename sprite field, add sprite_coord_originBrian Paul
2010-09-18llvmpipe: use llvm for attribute interpolant calculationKeith Whitwell
Basically no change relative to hard-coded version, but this will be useful for other changes later.
2010-09-16llvmpipe: add LP_PERF flag to disable various aspects of rasterizationKeith Whitwell
Allows disabling various operations (mainly texture-related, but will grow) to try & identify bottlenecks. Unlike LP_DEBUG, this is active even in release builds - which is necessary for performance investigation.
2010-09-11llvmpipe: move some debug to DEBUG_SCENEKeith Whitwell
2010-09-07llvmpipe: rasterization debugging helpersKeith Whitwell
2010-09-07llvmpipe: use opcodes instead of function pointers in binsKeith Whitwell
Also, move some state from rasterizer struct to the scene.
2010-09-07llvmpipe: rearrange queriesKeith Whitwell
2010-09-07llvmpipe: enforce fixed memory limit on scenesKeith Whitwell
2010-09-07llvmpipe: clean up deferred zstencil clearsKeith Whitwell
2010-09-07llvmpipe: rework fences and queriesKeith Whitwell
2010-08-27llvmpipe: point sprites rasterizationHui Qi Tay
Point sprites now done in the rasterizer setup code instead of going through the draw module.
2010-08-27llvmpipe: native point rasterizationHui Qi Tay
Conflicts: src/gallium/drivers/llvmpipe/lp_setup_context.h src/gallium/drivers/llvmpipe/lp_setup_line.c src/gallium/drivers/llvmpipe/lp_setup_tri.c
2010-08-27llvmpipe: native rasterization for linesHui Qi Tay
Rasterize lines directly by treating them as 4-sided polygons. Still need to check the exact pixel rasteration.
2010-08-25llvmpipe: fix bad patch applicationKeith Whitwell
2010-08-25llvmpipe: track drawing region as a single u_rectKeith Whitwell
2010-08-25llvmpipe: move some fence functions into lp_screen.cKeith Whitwell
2010-08-25llvmpipe: fence debugging, add llvmpipe_finishKeith Whitwell
2010-07-16llvmpipe: use single swizzled tileKeith Whitwell
Use a single swizzled tile per colorbuf (and per thread) to avoid accumulating large amounts of cached swizzled data. Now that the SSE3 code has been merged to master, the performance delta of this change is minimal, the main benefit is reduced memory usage due to no longer keeping swizzled copies of render targets. It's clear from the performance of the in-place version of this code that there is still quite a bit of time being spent swizzling & unswizzling, but it's not clear exactly how to reduce that.
2010-07-13llvmpipe: move rasterizer to screen instead of setup contextRoland Scheidegger
there's no point of having this per context, so move to screen (and protect with a mutex).
2010-07-13llvmpipe: eliminate the set_state rasterizer commandKeith Whitwell
Just put a pointer to the state in the tri->inputs struct. Remove some complex logic for eliminating unused statechanges in bins at the expense of a slightly larger triangle struct.
2010-07-13llvmpipe: pass mask into fragment shaderKeith Whitwell
Move this code back out to C for now, will generate separately. Shader now takes a mask parameter instead of C0/C1/C2/etc. Shader does not currently use that parameter and rasterizes whole pixel stamps always.
2010-07-13llvmpipe: move fences from per-bin to per-threadKeith Whitwell
Rather than inserting an lp_rast_fence command at the end of each bin, have each rasterizer thread call this function directly once it has run out of work to do on a particular scene. This results in fewer calls to the mutex & related functions, but more importantly makes it easier to recognize empty bins.
2010-07-06llvmpipe: disconnect vertex texture sampling from the setupZack Rusin
it was wrong to put this in the fs paths, but it was easier to just stuff it along the fragment texture sampling paths. the patch disconnects vertex texture sampling and just maps the textures before the draw itself and unmaps them after.
2010-07-06draw: implement vertex texture sampling using llvmZack Rusin
2010-06-30llvmpipe: use dummy tile when out of memoryBrian Paul
2010-06-30llvmpipe: Add a new scene state to describe scenes which only have state ↵José Fonseca
changes. It's a rare condition, but it may happen if all primitives are clipped/culled. For now we just do a no-op rasterization, but we could bypass it.
2010-06-28llvmpipe: Ensure outdated framebuffer state is not reused in ↵José Fonseca
lp_setup_bind_framebuffer(). We were starting a scene whenever lp_setup_get_vertex_info() was called by the draw module. So when when all primitives were culled/clipped, not only did we create a new scene for nothing, but we end up using the old scene with the old framebuffer state instead of a new one. Fix consists in: - don't call lp_setup_update_state() in lp_setup_get_vertex_info() -- no longer necessary - always setting the scene state before binning a command -- query commands were bypassing it - assert no old scene is reused in lp_setup_bind_framebuffer()
2010-06-09llvmpipe: fix copy & paste bug in clear logicRoland Scheidegger
fixes bug 28450.
2010-06-03llvmpipe: Fix uninitialized variable on non-debug builds.Vinson Lee
2010-06-03Merge branch 'gallium-newclear'Roland Scheidegger
Conflicts: src/gallium/state_trackers/python/p_context.i
2010-05-30llvmpipe: Pass the fs variant to the rasterizer.José Fonseca
2010-05-29llvmpipe: adapt to clear interface changesRoland Scheidegger
with some newfangled code, should support separate depth/stencil clears. Needs some testing.
2010-05-13llvmpipe: silence casting warningsBrian Paul
2010-05-08llvmpipe: Remove unnecessary header.Vinson Lee
2010-05-06llvmpipe: implement occlusion queryQicheng Christopher Li
OpenGL occlusion queries work now. The Mesa demos, glean test and piglit tests all pass. A few enhancements are possible in the future. -Brian Signed-off-by: Brian Paul <brianp@vmware.com>
2010-05-04llvmpipe: Remove unnecessary headers.Vinson Lee
2010-05-04llvmpipe: do some null pointer checkingBrian Paul
2010-05-03gallium: move framebuffer utility functions into a new fileBrian Paul
2010-04-28llvmpipe: fix scene queue memory leakBrian Paul
2010-04-28llvmpipe: fix surface memory leak during tear-downBrian Paul
2010-04-28llvmpipe: remove unused write_depthBrian Paul
2010-04-27llvmpipe: implement max scene sizeBrian Paul
When the size of the scene (binned data plus referenced resources/textures) exceeds LP_MAX_SCENE_SIZE flush/render the scene. This could be improved in various ways but is a good start. Fixes piglit streaming-texture-leak test.
2010-04-24llvmpipe: Initialize dummy variable.José Fonseca
2010-04-24llvmpipe: Don't use fences when not using threads.José Fonseca
lp_setup_flush has effect immediately.