summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
AgeCommit message (Collapse)Author
2010-08-20gallium: make all checks for PIPE_TEXTURE_2D check for PIPE_TEXTURE_RECT tooLuca Barbieri
Searched for them with: git grep -E '[!=]=.*PIPE_TEXTURE_2D|PIPE_TEXTURE_2D.*[!=]=|case.*PIPE_TEXTURE_2D' Behavior hasn't been changed.
2010-08-14gallivm: Remove unnecessary header.Vinson Lee
2010-08-14u_cpu_detect: remove arch and little_endianLuca Barbieri
This logic duplicates the one in p_config.h, so remove it and adjust the only two places that were using it.
2010-08-11gallivm: Use lp_build_div instead of lp_build_mul + lp_build_rcp.José Fonseca
Single divide, so let lp_build_div decide how to implement this. This will save a multiplication in architectures which don't have a RCP intrinsic.
2010-08-11gallivm: Use unsigned shift in lp_build_minify.José Fonseca
Texture dimensions are unsigned.
2010-08-09gallivm: Always use floating-point operators for floating-point typesnobled
This fixes the assert added in LLVM 2.8: assert(getType()->isIntOrIntVectorTy() && "Tried to create an integer operation on a non-integer type!") But it also fixes some subtle bugs, since we should've been doing this since LLVM 2.6 anyway. Includes a modified patch from steckdenis@yahoo.fr for the FNeg instructions in emit_fetch(); thanks for pointing those out. http://bugs.freedesktop.org/29404 http://bugs.freedesktop.org/29407 Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-07-07gallivm: restore const qualifierBrian Paul
2010-07-07gallivm: fix cube map LOD computationBrian Paul
First, this undoes commit e503af4baa2c709ae5743bb278b277d3faaba076 so we use iround() in lp_build_nearest_mip_level(). Second, in lp_build_sample_general() we need to check if we're sampling a cube map before anything else. Choose the cube face and then recompute the partial derivatives of (S,T) with respect to the chosen cube face. Before, we were using the directional (S,T,R) derivatives to compute the LOD. Third, work around an apparent bug in LLVM 2.7 where setting the lod variable to a const(0) value results in bad x86 code. See comments in the code.
2010-07-06gallivm: use trunc, not round in lp_build_nearest_mip_level()Brian Paul
Fixes fd.o bug 28036 (piglit fbo-cubemap.c regression)
2010-07-02gallivm: Do 4ubyte AoS texture filtering for any format that can be expressed.José Fonseca
Except if it has only one channel, as it would take the same number of instructions.
2010-07-02gallivm: Move lp_build_rgba8_to_f32_soa() to lp_bld_format_soa.cJosé Fonseca
It will be more useful here.
2010-07-02gallivm: Move gather functions to its own module.José Fonseca
They need to grow, and they provide basic functionality which is not specific to sampling.
2010-06-02gallivm: Make lp_build_sample_wrap_int usage more accurate.José Fonseca
Fixes mesa texwrap demo border with GL_CLAMP.
2010-06-02gallivm: Don't use reciprocate in lp_build_sample_wrap_linear().José Fonseca
Always clamp the scaled coordinates.
2010-06-02gallivm: Avoid fp arithmetic in lp_build_sample_wrap_nearest().José Fonseca
2010-06-02gallivm: Don't use lp_build_sample_wrap_nearest()José Fonseca
Always clamp with scaled coordinates.
2010-05-13llvmpipe: silence uninitialized var warningsBrian Paul
2010-05-12gallivm: rename texel result paramBrian Paul
Be clear that this parameter returns four texel channel results.
2010-05-08gallivm: Fix mipfiltering with negative lod bias.José Fonseca
In particular, don't use the clamped lod to compute level + 1, or lod in [-1, 0] range will actually interpolate with level 1. This makes Mipfilter DCT pass 100%.
2010-05-08gallivm: Centralize SoA swizzling into a single place.José Fonseca
2010-05-04gallivm: Proper implementation of TXL opcode.José Fonseca
2010-05-04gallivm: Fix several glitches introduced in the prev commit.José Fonseca
2010-05-04gallivm: Implement TXD.José Fonseca
2010-04-30llvmpipe: fix out-of-bounds texture samplingBrian Paul
If we're using a wrap mode in which border color sampling is possible it means that texcoords may be outside of the texture image bounds. Fetching the texel may result in a segfault. Use the 'use_border' variable to catch such texcoords and replace the texel offset with zero (which will be in bounds). Fixes segfault in Lightsmark demo, fd.o bug 27877.
2010-04-30llvmpipe: added lp_build_sample_nop() for debuggingBrian Paul
2010-04-29gallivm: add some assertions in special-case sampler codeBrian Paul
2010-04-26llvmpipe: Respect pipe_sampler_view::swizzle_r/g/b/aJosé Fonseca
This allows u_sampler_view_default_dx9_template to do its magic on DX9.
2010-04-24llvmpipe: Implement shader bias.José Fonseca
Fixes glean glsl1 test: texture2D(), with bias.
2010-04-19gallivm: pass 3D texture stride as an arrayBrian Paul
This should have been included with the previous commit.
2010-04-16gallivm: init some vars to silence warningsBrian Paul
2010-04-16gallivm: remove some old stuffBrian Paul
2010-04-06gallivm: Fallback to calling util_format_description::fetch_float for any ↵José Fonseca
format we can't code LLVM IR directly.
2010-03-31util: Generalize lp_format_is_rgba8 into util_format_is_rgba8_variant.José Fonseca
2010-03-15gallivm/llvmpipe: rename some constant building functionsBrian Paul
2010-03-15gallivm: add min_lod==max_lod special-case code in lp_build_lod_selector()Brian Paul
When min_lod==max_lod we don't need to go through all the work of computing the lod from partial derivatives. This is hit by the mipmap generation utility code.
2010-03-15gallivm: asst clean-ups, comments, etc.Brian Paul
2010-03-15gallivm: implement minification/magnification selectionBrian Paul
Use the LOD value to determine whether to use the minification vs. magnification filter. All mipmap sampling modes work now.
2010-03-15gallivm: fix incorrect clamp in lp_build_linear_mip_levels()Brian Paul
2010-03-12gallivm: cube map sampling works nowBrian Paul
2010-03-11gallivm: checkpoint WIP cubemap codeBrian Paul
2010-03-11gallivm: enable 3D texture samplingBrian Paul
2010-03-11gallivm/llvmpipe: replace 'int stride' with 'int row_stride[MAX_LEVELS]'Brian Paul
The stride depends on the mipmap level. Rename to row_stride to distinguish from img_stride for 3D textures. Fixes incorrect texel addressing in small mipmap levels.
2010-03-11gallivm: fix some bugs on the 1D texture pathsBrian Paul
2010-03-10gallivm: overhaul of texture sampling codeBrian Paul
The new lp_build_sample_general() function will handle all sampling modes for all texture types. Still incomplete, but a few additional sampling modes are now supported. 1D textures should work and most of the code for 3D textures is in place. No support for cube maps yet. No support for different min/mag filters.
2010-03-10gallivm: implement bilinear sampling with nearest mipmappingBrian Paul
Time to start consolidating some code...
2010-03-10gallivm: remove debug code. nearest minification works now.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-08llvmpipe/gallivm: checkpoint: array of pointers to mipmap levelsBrian Paul
Change the texture data_ptr from just a single image pointer to an array of image pointers, indexed by mipmap level. We'll use this for mipmap filtering. For now, the mipmap level is hard-coded to zero.
2010-03-06gallivm: Initialize variables for default cases.Vinson Lee
Fixes use of uninitialized variables in non-debug builds.
2010-03-05gallivm: checkpoint: code gen for mipmap selectionBrian Paul