Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | gallivm: replace has_indirect_addressing field with indirect_files field | Brian Paul | 2010-07-21 | 1 | -8/+17 |
| | | | | | | | | | | Instead of one big boolean indicating indirect addressing, use a bitfield indicating which register files are accessed with indirect addressing. Most shaders that use indirect addressing only use it to access the constant buffer. So no need to use an array for temporary registers in this case. | ||||
* | gallivm: refactor code into get_indirect_offsets() function | Brian Paul | 2010-07-21 | 1 | -23/+34 |
| | |||||
* | gallivm: added comment | Brian Paul | 2010-07-21 | 1 | -0/+6 |
| | |||||
* | gallivm: remove extraneous braces | Brian Paul | 2010-07-21 | 1 | -20/+18 |
| | |||||
* | gallivm: no longer do indirect addressing in get_temp_ptr() | Brian Paul | 2010-07-21 | 1 | -20/+15 |
| | |||||
* | gallivm: implement correct indirect addressing of temp registers | Brian Paul | 2010-07-21 | 1 | -11/+29 |
| | | | | | As with indexing the const buffer, the ADDR reg may have totally different values for each element. Need to use a gather operation. | ||||
* | gallivm: re-org, comments for get_temp_ptr() | Brian Paul | 2010-07-21 | 1 | -3/+13 |
| | |||||
* | gallivm: rename a var to avoid compiler warnings | Brian Paul | 2010-07-21 | 1 | -2/+2 |
| | |||||
* | gallivm: fix indirect addressing of constant buffer | Brian Paul | 2010-07-20 | 1 | -25/+83 |
| | | | | | | | | | The previous code assumed that all elements of the address register were the same. But it can vary from pixel to pixel or vertex to vertex so we must use a gather operation when dynamically indexing the constant buffer. Still need to fix this for the temporary register file... | ||||
* | gallivm: added lp_build_const_int32() helper | Brian Paul | 2010-07-20 | 1 | -0/+8 |
| | |||||
* | gallivm: restore const qualifier | Brian Paul | 2010-07-07 | 1 | -1/+1 |
| | |||||
* | gallivm: fix cube map LOD computation | Brian Paul | 2010-07-07 | 1 | -38/+54 |
| | | | | | | | | | | | | | | | 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. | ||||
* | gallivm: Remove unnecessary header. | Vinson Lee | 2010-07-06 | 1 | -1/+0 |
| | |||||
* | gallivm: use trunc, not round in lp_build_nearest_mip_level() | Brian Paul | 2010-07-06 | 1 | -1/+1 |
| | | | | Fixes fd.o bug 28036 (piglit fbo-cubemap.c regression) | ||||
* | gallivm: finish implementation of lp_build_iceil() | Brian Paul | 2010-07-06 | 1 | -19/+67 |
| | | | | | | Plus fix minor error in lp_build_iceil() by tweaking the offset value. And add a bunch of comments for the round(), trunc(), floor(), ceil() functions. | ||||
* | gallivm: Use SSE4.1's BLENDV instructions for lp_build_select(). | José Fonseca | 2010-07-06 | 1 | -0/+41 |
| | |||||
* | gallivm: Fix 8bit comparisons. | José Fonseca | 2010-07-06 | 1 | -5/+3 |
| | |||||
* | gallivm: Remove unnecessary headers. | Vinson Lee | 2010-07-03 | 2 | -2/+0 |
| | |||||
* | gallivm: Do 4ubyte AoS texture filtering for any format that can be expressed. | José Fonseca | 2010-07-02 | 3 | -52/+96 |
| | | | | | Except if it has only one channel, as it would take the same number of instructions. | ||||
* | gallivm: Use util_format_description::fetch_rgba_8unorm() when available. | José Fonseca | 2010-07-02 | 1 | -7/+100 |
| | |||||
* | gallivm: Support multiple pixels in lp_build_fetch_rgba_aos(). | José Fonseca | 2010-07-02 | 4 | -110/+198 |
| | | | | | This allows to do the unpacking of formats that fit in 4 x unorm8 in parallel, 4 pixels at a time. | ||||
* | gallivm: Move lp_build_rgba8_to_f32_soa() to lp_bld_format_soa.c | José Fonseca | 2010-07-02 | 3 | -32/+40 |
| | | | | It will be more useful here. | ||||
* | gallivm: Move gather functions to its own module. | José Fonseca | 2010-07-02 | 8 | -61/+213 |
| | | | | | They need to grow, and they provide basic functionality which is not specific to sampling. | ||||
* | gallivm: Check inputs/outputs in lp_build_conv() | José Fonseca | 2010-07-02 | 1 | -2/+6 |
| | |||||
* | gallivm: Code generate YUV format unpacking. | José Fonseca | 2010-07-02 | 3 | -0/+429 |
| | |||||
* | gallivm: Fix 4 x unorm8 -> 4 x float conversion. | José Fonseca | 2010-07-02 | 2 | -7/+30 |
| | | | | Also fix the test. | ||||
* | gallivm: Support 4 x unorm8 in lp_build_fetch_rgba_aos(). | José Fonseca | 2010-07-01 | 4 | -69/+210 |
| | | | | Uses code and ideas from Brian Paul. | ||||
* | gallivm: Allow to conversions to/from registers of different sizes. | José Fonseca | 2010-07-01 | 3 | -21/+125 |
| | | | | | | Allow for example to convert from 4 x float32 to 4 x unorm8 and vice versa. Uses code and ideas from Brian Paul. | ||||
* | gallivm: Support extended swizzles in lp_build_swizzle1_aos(). | José Fonseca | 2010-07-01 | 3 | -23/+169 |
| | | | | And rename to lp_build_swizzle_aos(). | ||||
* | gallivm: Setup a global optimization pass. | José Fonseca | 2010-07-01 | 2 | -0/+31 |
| | | | | | Modules are still free to setup their own optimization passes, but for the normal case it should not be necessary. | ||||
* | llvmpipe: Remove lp_build_swizzle2_aos(). | José Fonseca | 2010-07-01 | 2 | -61/+0 |
| | | | | Unnecessary special case. | ||||
* | gallivm: Omit references to NoFramePointerElimNonLeaf | José Fonseca | 2010-06-14 | 1 | -3/+0 |
| | | | | It was added after 2.7. | ||||
* | gallivm: Override some of the default target options. | José Fonseca | 2010-06-14 | 2 | -0/+31 |
| | | | | | | | In particular: - enable LLVM <-> GDB integration for JIT code - disable frame-pointer elimination on debug/profile builds - enable fast-math. | ||||
* | gallivm: Use func_to_pointer(). | José Fonseca | 2010-06-14 | 1 | -16/+1 |
| | |||||
* | gallivm: eliminate tgsi_exec.h include | Keith Whitwell | 2010-06-07 | 1 | -1/+1 |
| | |||||
* | gallivm: Register the JIT engine with oprofile on debug/profile builds. | José Fonseca | 2010-06-03 | 2 | -1/+30 |
| | |||||
* | gallivm: Factor out the quad derivative code into a single place. Fix ddy. | José Fonseca | 2010-06-03 | 3 | -52/+202 |
| | | | | For ddy it should be (bottom - top). | ||||
* | gallium: silence all debug_named_value related warnings | Joakim Sindholt | 2010-06-03 | 1 | -5/+5 |
| | |||||
* | gallivm: bump up LP_BUILD_FLOW_MAX_VARIABLES | Brian Paul | 2010-06-02 | 1 | -1/+1 |
| | | | | | | | Fixes failed assertion with piglit fbo-drawbuffers-fragcolor.c See fd.o bug 28358. With 8 color buffers + Z we need to declare 33 vars, at least. | ||||
* | gallivm: Add a lp_build_const_elem(). | José Fonseca | 2010-06-02 | 2 | -14/+29 |
| | |||||
* | llvmpipe: Store often used LLVM types in the lp_build_context. | José Fonseca | 2010-06-02 | 2 | -2/+30 |
| | |||||
* | gallivm: Zero min_lod and max_lod when only one view is selected and min/mag ↵ | José Fonseca | 2010-06-02 | 1 | -3/+9 |
| | | | | filter are equal. | ||||
* | gallivm: Make lp_build_sample_wrap_int usage more accurate. | José Fonseca | 2010-06-02 | 1 | -11/+2 |
| | | | | Fixes mesa texwrap demo border with GL_CLAMP. | ||||
* | gallivm: Don't use reciprocate in lp_build_sample_wrap_linear(). | José Fonseca | 2010-06-02 | 1 | -51/+50 |
| | | | | Always clamp the scaled coordinates. | ||||
* | gallivm: Avoid fp arithmetic in lp_build_sample_wrap_nearest(). | José Fonseca | 2010-06-02 | 1 | -78/+32 |
| | |||||
* | gallivm: Don't use lp_build_sample_wrap_nearest() | José Fonseca | 2010-06-02 | 1 | -42/+46 |
| | | | | Always clamp with scaled coordinates. | ||||
* | gallivm: add assertions to check type of phi variables | Brian Paul | 2010-05-27 | 1 | -0/+2 |
| | |||||
* | gallivm: Remove unnecessary headers. | Vinson Lee | 2010-05-26 | 1 | -2/+0 |
| | |||||
* | gallivm: Choose an appropriate code generation optimization level. | José Fonseca | 2010-05-25 | 1 | -1/+33 |
| | | | | 'Default' unless GALLIVM_DEBUG=nopt option is set. | ||||
* | gallivm: Efficient implementation of sin/cos. | Qicheng Christopher Li | 2010-05-24 | 1 | -105/+429 |
| | | | | | | Based on Julien Pommier's SSE and SSE2 algorithms. Signed-off-by: José Fonseca <[email protected]> |