summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/gallivm/lp_bld_arit.c
AgeCommit message (Collapse)Author
2010-05-24gallivm: Efficient implementation of sin/cos.Qicheng Christopher Li
Based on Julien Pommier's SSE and SSE2 algorithms. Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-05-10gallivm: Silent warning.José Fonseca
2010-05-10gallivm: cosf/sinf are macros on MSVC.José Fonseca
So taking the function address does not work.
2010-05-08gallivm: Actually do floor/ceil/trunc for scalars.José Fonseca
Also start axing the code duplication for scalar case. The olution is to treat the scalar case specially in a few innermost functions, and leave outer functions untouched.
2010-05-08gallivm: Use a minimax polynomial for exp2 in range [0,1] instead [-0.5,5].José Fonseca
The advantage of range[-0.5, 0.5] is that it doesn't require floor (for which intrinsics are only available in SSE4.1). But the EXP opcode pretty much forces us to use floor, and there is a good floor approximation around truncation available anyway. This fixes EXP failures in VShader DCT.
2010-05-08gallivm: The the JIT engine to use our sinf()/cosf() on Windows.José Fonseca
A quick hack to get the right results, as there are many DCT tests which use these opcodes to generate data to test other opcodes.
2010-05-04gallicm: Newton-Raphson step to improve precision.José Fonseca
Disabled as it doesn't make VS/PSPrecision DCT happy, and it would unnecessarily slow some cases where it is not needed.
2010-04-27gallivm: Disable llvm.cos.v4f32 and llvm.sin.v4f32 instrinsics on Windows.José Fonseca
Runtime linking doesn't quite work. Just comment then out for now to prevent crashes. These will go away in the future because calling 4 times CRT's cosf()/sinf() is over-precise and under-performing.
2010-04-24gallivm: LLVMConstBitCast -> LLVMBuildBitCastJosé Fonseca
As the argument in general might not be a constant.
2010-04-22gallivm: make sure we return the correct type when approximating log'sZack Rusin
2010-03-15gallivm/llvmpipe: rename some constant building functionsBrian Paul
2010-03-15gallivm: fix typo/bug in lp_build_sgn()Brian Paul
We were never returning -1 as a result. This fixes some inverted/flipped faces with cube mapping.
2010-03-15gallivm: fix incorrect floor(), itrunc()Brian Paul
LLVMBuildFPTrunc() should be used for double->float conversion, not float->int conversion. There should be a better way to compute floor(), ceil(), etc that doesn't involve float->int->float conversion.
2010-03-12gallivm: support non-vector float in lp_build_sgn()Brian Paul
2010-03-11gallivm: added lp_build_sum_vector()Brian Paul
2010-03-10gallivm: handle scalar floats in lp_build_floor() and lp_build_iround()Brian Paul
2010-03-09gallivm: checkpoint: nearest mipmap filteringBrian Paul
The LOD is computed from texcoord partial derivatives and used to select a mipmap level. Still some bugs in texel fetching. Lots of rough edges and unfinished parts but the basics are in place. Lots of changes to the lp_bld_arit.c code to support non-vector/scalar datatypes.
2010-03-04gallivm: added lp_build_fract()Brian Paul
2010-03-04gallivm: added lp_build_set_sign()Brian Paul
2010-03-04gallivm: added lp_build_negate()Brian Paul
2010-02-23gallivm: added clamp and int_to_float functionsBrian Paul
2010-02-08llvmpipe: export the tgsi translation code to a common layerZack Rusin
the llvmpipe tgsi translation is a lot more complete than what was in gallivm so replacing the latter with the former. this is needed since the draw llvm paths will use the same code. effectively the proven llvmpipe code becomes gallivm.