Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-10-15 | llvmpipe: check shader outputs are non-null before using | Keith Whitwell | |
2010-10-15 | llvmpipe: fix non-sse build after recent changes | Keith Whitwell | |
2010-10-15 | llvmpipe: use aligned loads/stores for plane values | Keith Whitwell | |
2010-10-15 | llvmpipe: do plane calculations with intrinsics | Keith Whitwell | |
This is a step towards moving this code into the rasterizer. | |||
2010-10-15 | gallium: move some intrinsics helpers to u_sse.h | Keith Whitwell | |
2010-10-15 | llvmpipe: don't store plane.ei value in binned data | Keith Whitwell | |
Further reduce the size of a binned triangle. | |||
2010-10-15 | llvmpipe: slightly shrink the size of a binned triangle | Keith Whitwell | |
2010-10-15 | llvmpipe: don't pass frontfacing as a float | Keith Whitwell | |
2010-10-15 | llvmpipe: reintroduce SET_STATE binner command | Keith Whitwell | |
But bin lazily only into bins which are receiving geometry. | |||
2010-10-14 | llvmpipe: code to dump bytecode to file (disabled) | Brian Paul | |
2010-10-14 | llvmpipe: don't try to emit non-existent color outputs | Keith Whitwell | |
2010-10-13 | llvmpipe: 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-13 | llvmpipe: 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-12 | draw/llvmpipe: replace DRAW_MAX_TEXTURE_LEVELS with PIPE_MAX_TEXTURE_LEVELS | Brian Paul | |
There's no apparent reason for the former to exist. And they didn't even have the same value. | |||
2010-10-12 | llvmpipe: make sure intrinsics code is guarded with PIPE_ARCH_SSE | Keith Whitwell | |
2010-10-12 | llmvpipe: improve mm_mullo_epi32 | José Fonseca | |
Apply Jose's suggestions for a small but measurable improvement in isosurf. | |||
2010-10-12 | Revert "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-12 | gallium: move sse intrinsics debug helpers to u_sse.h | Keith Whitwell | |
2010-10-12 | llvmpipe: Fix MSVC build. | José Fonseca | |
MSVC doesn't accept more than 3 __m128i arguments. | |||
2010-10-12 | llvmpipe: fix typo in last commit | Keith Whitwell | |
2010-10-12 | llvmpipe: try to keep plane c values small | Keith Whitwell | |
Avoid accumulating more and more fixed point bits. | |||
2010-10-12 | llvmpipe: add debug helpers for epi32 etc | Keith Whitwell | |
2010-10-12 | llvmpipe: try to do more of rast_tri_3_16 with intrinsics | Keith 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-12 | llvmpipe: Do not dispose the execution engine. | José Fonseca | |
The engine is a global owned by gallivm module. | |||
2010-10-11 | llvmpipe: Use lp_tgsi_info. | José Fonseca | |
2010-10-11 | llvmpipe: Remove outdated comment about stencil testing. | José Fonseca | |
2010-10-09 | gallivm: Cleanup the rest of the flow module. | José Fonseca | |
2010-10-09 | gallivm: Remove support for Phi generation. | José Fonseca | |
Simply rely on mem2reg pass. It's easier and more reliable. | |||
2010-10-09 | gallivm: Don't generate Phis for execution mask. | José Fonseca | |
2010-10-09 | llvmpipe: Fix MSVC build. Enable the new SSE2 code on non SSE3 systems. | José Fonseca | |
2010-10-09 | llvmpipe: simplified SSE2 swz/unswz routines | Keith 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-09 | llvmpipe: clean up shader pre/postamble, try to catch more early-z | Keith 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-09 | llvmpipe: try to be sensible about whether to branch after mask updates | Keith Whitwell | |
Don't branch more than once in quick succession. Don't branch at the end of the shader. | |||
2010-10-09 | gallivm: specialized x8z24 depthtest path | Keith Whitwell | |
Avoid unnecessary masking of non-existant stencil component. | |||
2010-10-09 | llvmpipe: dump fragment shader ir and asm when LP_DEBUG=fs | Keith Whitwell | |
Better than GALLIVM_DEBUG if you're only interested in fragment shaders. | |||
2010-10-09 | llvmpipe: use alloca for fs color outputs | Keith Whitwell | |
Don't try to emit our own phi's, let llvm mem2reg do it for us. | |||
2010-10-09 | llvmpipe: defer attribute interpolation until after mask and ztest | Keith Whitwell | |
Don't calculate 1/w for quads which aren't visible... | |||
2010-10-09 | llvmpipe: Prevent z > 1.0 | José 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-09 | llvmpipe: fix rasterization of vertical lines on pixel boundaries | Zack Rusin | |
2010-10-08 | gallivm: Avoid control flow for two-sided stencil test. | José Fonseca | |
2010-10-08 | llvmpipe: fix off-by-one in tri_16 | Keith Whitwell | |
2010-10-08 | llvmpipe: add rast_tri_4_16 for small lines and points | Keith Whitwell | |
2010-10-08 | llvmpipe: clean up setup_tri a little | Keith Whitwell | |
2010-10-08 | llvmpipe: avoid overflow in triangle culling | Keith 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-08 | llvmpipe: fail gracefully on oom in scene creation | Keith Whitwell | |
2010-10-06 | llvmpipe: Cleanup depth-stencil clears. | José Fonseca | |
Only cosmetic changes. No actual practical difference. | |||
2010-10-06 | gallivm: Only apply min/max_lod when necessary. | José Fonseca | |
2010-10-06 | llvmpipe: 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-06 | llvmpipe: 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-06 | llvmpipe: Dump a few missing shader key flags. | José Fonseca | |