summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe
AgeCommit message (Collapse)Author
2010-10-15gallium: move some intrinsics helpers to u_sse.hKeith Whitwell
2010-10-15llvmpipe: don't store plane.ei value in binned dataKeith Whitwell
Further reduce the size of a binned triangle.
2010-10-15llvmpipe: slightly shrink the size of a binned triangleKeith Whitwell
2010-10-15llvmpipe: don't pass frontfacing as a floatKeith Whitwell
2010-10-15llvmpipe: reintroduce SET_STATE binner commandKeith Whitwell
But bin lazily only into bins which are receiving geometry.
2010-10-14llvmpipe: code to dump bytecode to file (disabled)Brian Paul
2010-10-14llvmpipe: don't try to emit non-existent color outputsKeith Whitwell
2010-10-13llvmpipe: Generalize the x8z24 fast path to all depth formats.José Fonseca
Together with the previous commit, this generalize the benefits of d2cf757f44f4ee5554243f3279483a25886d9927 to all depth formats, in particular: - simpler float -> 24unorm conversion - avoid unsigned comparisons (not directly supported on SSE) by aligning to the least significant bit - avoid unecessary/repeated mask ANDing Verified with trivial/tri-z that the exact same assembly is produced for X8Z24.
2010-10-13llvmpipe: Unbreak Z32_FLOAT.José Fonseca
Z32_FLOAT uses <4 x float> as intermediate/destination type, instead of <4 x i32>. The necessary bitcasts got removed with commit 5b7eb868fde98388d80601d8dea39e679828f42f Also use depth/stencil type and build contexts consistently, and make the depth pointer argument a ordinary <i8 *>, to catch this sort of issues in the future (and also to pave way for Z16 and Z32_FLOAT_S8_X24 support).
2010-10-12draw/llvmpipe: replace DRAW_MAX_TEXTURE_LEVELS with PIPE_MAX_TEXTURE_LEVELSBrian Paul
There's no apparent reason for the former to exist. And they didn't even have the same value.
2010-10-12llvmpipe: make sure intrinsics code is guarded with PIPE_ARCH_SSEKeith Whitwell
2010-10-12llmvpipe: improve mm_mullo_epi32José Fonseca
Apply Jose's suggestions for a small but measurable improvement in isosurf.
2010-10-12Revert "llvmpipe: try to keep plane c values small"Keith Whitwell
This reverts commit 9773722c2b09d5f0615a47cecf4347859474dc56. Looks like there are some floor/rounding issues here that need to be better understood.
2010-10-12gallium: move sse intrinsics debug helpers to u_sse.hKeith Whitwell
2010-10-12llvmpipe: Fix MSVC build.José Fonseca
MSVC doesn't accept more than 3 __m128i arguments.
2010-10-12llvmpipe: fix typo in last commitKeith Whitwell
2010-10-12llvmpipe: try to keep plane c values smallKeith Whitwell
Avoid accumulating more and more fixed point bits.
2010-10-12llvmpipe: add debug helpers for epi32 etcKeith Whitwell
2010-10-12llvmpipe: try to do more of rast_tri_3_16 with intrinsicsKeith Whitwell
There was actually a large quantity of scalar code in these functions previously. This tries to move more into intrinsics. Introduce an sse2 mm_mullo_epi32 replacement to avoid sse4 dependency in the new rasterization code.
2010-10-12llvmpipe: Do not dispose the execution engine.José Fonseca
The engine is a global owned by gallivm module.
2010-10-11llvmpipe: Use lp_tgsi_info.José Fonseca
2010-10-11llvmpipe: Remove outdated comment about stencil testing.José Fonseca
2010-10-09gallivm: Cleanup the rest of the flow module.José Fonseca
2010-10-09gallivm: Remove support for Phi generation.José Fonseca
Simply rely on mem2reg pass. It's easier and more reliable.
2010-10-09gallivm: Don't generate Phis for execution mask.José Fonseca
2010-10-09llvmpipe: Fix MSVC build. Enable the new SSE2 code on non SSE3 systems.José Fonseca
2010-10-09llvmpipe: simplified SSE2 swz/unswz routinesKeith Whitwell
We've been using these in the linear path for a while now. Based on Chris's SSSE3 code, but using only sse2 opcodes. Speed seems to be identical, but code is simpler & removes dependency on SSE3. Should be easier to extend to other rgba8 formats.
2010-10-09llvmpipe: clean up shader pre/postamble, try to catch more early-zKeith Whitwell
Specifically, can do early-depth-test even when alpahtest or kill-pixel are active, providing we defer the actual z write until the final mask is avaialable. Improves demos/fire.c especially in the case where you get close to the trees.
2010-10-09llvmpipe: try to be sensible about whether to branch after mask updatesKeith Whitwell
Don't branch more than once in quick succession. Don't branch at the end of the shader.
2010-10-09gallivm: specialized x8z24 depthtest pathKeith Whitwell
Avoid unnecessary masking of non-existant stencil component.
2010-10-09llvmpipe: dump fragment shader ir and asm when LP_DEBUG=fsKeith Whitwell
Better than GALLIVM_DEBUG if you're only interested in fragment shaders.
2010-10-09llvmpipe: use alloca for fs color outputsKeith Whitwell
Don't try to emit our own phi's, let llvm mem2reg do it for us.
2010-10-09llvmpipe: defer attribute interpolation until after mask and ztestKeith Whitwell
Don't calculate 1/w for quads which aren't visible...
2010-10-09llvmpipe: Prevent z > 1.0José Fonseca
The current interpolation schemes causes precision loss. Changing the operation order helps, but does not completely avoid the problem. The only short term solution is to clamp z to 1.0. This is unfortunate, but probably unavoidable until interpolation is improved.
2010-10-09llvmpipe: fix rasterization of vertical lines on pixel boundariesZack Rusin
2010-10-08gallivm: Avoid control flow for two-sided stencil test.José Fonseca
2010-10-08llvmpipe: fix off-by-one in tri_16Keith Whitwell
2010-10-08llvmpipe: add rast_tri_4_16 for small lines and pointsKeith Whitwell
2010-10-08llvmpipe: clean up setup_tri a littleKeith Whitwell
2010-10-08llvmpipe: avoid overflow in triangle cullingKeith Whitwell
Avoid multiplying fixed-point values. Calculate triangle area in floating point use that for culling. Lift area calculations up a level as we are already doing this in the triangle_both() case. Would like to share the calculated area with attribute interpolation, but the way the code is structured makes this difficult.
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-10-06gallivm: Only apply min/max_lod when necessary.José Fonseca
2010-10-06llvmpipe: Fix sprite coord perspective interpolation of Q.José Fonseca
Q coordinate's coefficients also need to be multiplied by w, otherwise it will have 1/w, causing problems with TXP.
2010-10-06llvmpipe: Fix perspective interpolation for point sprites.José Fonseca
Once a fragment is generated with LP_INTERP_PERSPECTIVE set for an input, it will do a divide by w for that input. Therefore it's not OK to treat LP_INTERP_PERSPECTIVE as LP_INTERP_LINEAR or vice-versa, even if the attribute is known to not vary. A better strategy would be to take the primitive in consideration when generating the fragment shader key, and therefore avoid the per-fragment perspective divide.
2010-10-06llvmpipe: Dump a few missing shader key flags.José Fonseca
2010-10-06llvmpipe: make debug_fs_variant respect variant->nr_samplersKeith Whitwell
2010-09-30gallium/llvmpipe: remove duplicated includeNicolas Kaiser
Remove duplicated include. Signed-off-by: Brian Paul <brianp@vmware.com>
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-25llvmpipe: handle up to 8 planes in triangle binnerKeith Whitwell