summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe
AgeCommit message (Collapse)Author
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
2010-09-25llvmpipe: handle FACING interpolants in line and point setupKeith Whitwell
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-22llvmpipe: fix sprite texcoord setup for non-projective texturingBrian Paul
Normally the Mesa state tracker uses TXP instructions for texturing. But if a fragment shader uses texture2D() that's a TEX instruction. In that case we were incorrectly computing the texcoord coefficients in the point sprite setup code. Some new comments in the code explain things.
2010-09-22llvmpipe: Make rgb/alpha bland func/factors match, when there is no alpha.José Fonseca
Makes AoS blending easier, and state more canonical.
2010-09-22llvmpipe: Special case complementary and identify blend factors in SoA.José Fonseca
One multiplication instead of two. Also fix floating point random number generation and verification. TODO: Do the same for AoS blending.
2010-09-21llvmpipe: When failing free fs shader too.José Fonseca
2010-09-21llvmpipe: Describe how to profile llvmpipe.José Fonseca
2010-09-21Merge branch 'sprite-coord'Brian Paul
2010-09-21llvmpipe: fix flatshading in new line codeKeith Whitwell
Calculate interpolants before rearranging the vertices.
2010-09-20llvmpipe: check bitshift against PIPE_MAX_SHADER_OUTPUTSBrian Paul
2010-09-20llvmpipe: implement sprite coord origin modesBrian Paul