Age | Commit message (Collapse) | Author | |
---|---|---|---|
2011-01-15 | Merge branch 'draw-instanced' | Brian Paul | |
Conflicts: src/gallium/auxiliary/draw/draw_llvm.c src/gallium/drivers/llvmpipe/lp_state_fs.c src/glsl/ir_set_program_inouts.cpp src/mesa/tnl/t_vb_program.c | |||
2010-12-08 | gallivm/llvmpipe: implement system values and instanceID | Brian Paul | |
2010-12-03 | gallivm: fix null builder pointers | Brian Paul | |
2010-12-02 | gallivm/llvmpipe: remove lp_build_context::builder | Brian Paul | |
The field was redundant. Use the gallivm->builder value instead. | |||
2010-11-30 | gallivm/llvmpipe: squash merge of the llvm-context branch | Brian Paul | |
This branch defines a gallivm_state structure which contains the LLVMBuilderRef, LLVMContextRef, etc. All data structures built with this object can be periodically freed during a "garbage collection" operation. The gallivm_state object has to be passed to most of the builder functions where LLVMBuilderRef used to be used. Conflicts: src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c src/gallium/drivers/llvmpipe/lp_state_setup.c | |||
2010-11-30 | gallivm: fix storing of the addr register | Zack Rusin | |
we store into the index specified by the register index, not an indirect register. | |||
2010-11-10 | gallivm: implement indirect addressing over inputs | Zack Rusin | |
Instead of messing with the callers simply copy our inputs into a alloca array at the beginning of the function and then use it. Reviewed-by: José Fonseca <jfonseca@vmware.com> | |||
2010-11-09 | gallivm: Allocate TEMP/OUT arrays only once. | José Fonseca | |
2010-11-09 | gallivm: implement indirect addressing of the output registers | Zack Rusin | |
2010-11-05 | gallivm: add const qualifiers, fix comment string | Brian Paul | |
2010-11-05 | gallivm: alloca() was called too often for temporary arrays | Brian Paul | |
Need to increment the array index to point to the last value. Before, we were calling lp_build_array_alloca() over and over for no reason. | |||
2010-11-04 | gallivm: implement execution mask for scatter stores | Brian Paul | |
2010-11-04 | gallivm: add pixel offsets in scatter stores | Brian Paul | |
We want to do the scatter store to sequential locations in memory for the vector of pixels we're processing in SOA format. | |||
2010-11-04 | gallivm: added debug code to dump temp registers | Brian Paul | |
2010-11-03 | gallivm: add some LLVM var labels | Brian Paul | |
2010-11-03 | gallivm: implement scatter stores into temp register file | Brian Paul | |
Something is not quite right, however. The piglit tests mentioned in fd.o bug 31226 still don't pass. | |||
2010-10-19 | gallivm: fix incorrect type for zero vector in emit_kilp() | Brian Paul | |
http://bugs.freedesktop.org/show_bug.cgi?id=30974 | |||
2010-10-12 | gallivm: don't branch on KILLs near end of shader | Keith Whitwell | |
2010-10-10 | gallivm: Pass texture coords derivates as scalars. | José Fonseca | |
We end up treating them as scalars in the end, and it saves some instructions. | |||
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-09-16 | gallivm: Clamp indirect register indices to file_max. | José Fonseca | |
Prevents crashes with bogus data, or bad shader translation. | |||
2010-09-16 | gallivm: Fix address register swizzle. | José Fonseca | |
We're actually doing a double swizzling: indirect_reg->Swizzle[indirect_reg->SwizzleX] instead of simply indirect_reg->SwizzleX | |||
2010-09-11 | gallivm: Move the texture modifiers to the header. | José Fonseca | |
Useful to pass these around. | |||
2010-09-05 | gallivm: Cope with tgsi instruction reallocation failure. | José Fonseca | |
2010-08-31 | gallivm: fix bug in nested conditionals | Brian Paul | |
This, plus the previous commit fix fd.o bug 29806. | |||
2010-08-18 | gallivm: Use proper index to lookup predicate register array. | michal | |
Doesn't fix anything, as those indices were both always 0. | |||
2010-08-09 | gallivm: Don't call LLVMBuildFNeg on llvm-2.6. | José Fonseca | |
It didn't exist yet. | |||
2010-08-09 | gallivm: Always use floating-point operators for floating-point types | nobled | |
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-08-08 | gallivm: Fix more integer operations. | José Fonseca | |
2010-08-08 | gallivm: Use the correct context for integers | nobled | |
See: http://bugs.freedesktop.org/29407 | |||
2010-07-21 | gallivm: replace has_indirect_addressing field with indirect_files field | Brian Paul | |
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. | |||
2010-07-21 | gallivm: refactor code into get_indirect_offsets() function | Brian Paul | |
2010-07-21 | gallivm: added comment | Brian Paul | |
2010-07-21 | gallivm: remove extraneous braces | Brian Paul | |
2010-07-21 | gallivm: no longer do indirect addressing in get_temp_ptr() | Brian Paul | |
2010-07-21 | gallivm: implement correct indirect addressing of temp registers | Brian Paul | |
As with indexing the const buffer, the ADDR reg may have totally different values for each element. Need to use a gather operation. | |||
2010-07-21 | gallivm: re-org, comments for get_temp_ptr() | Brian Paul | |
2010-07-21 | gallivm: rename a var to avoid compiler warnings | Brian Paul | |
2010-07-20 | gallivm: fix indirect addressing of constant buffer | Brian Paul | |
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... | |||
2010-06-07 | gallivm: eliminate tgsi_exec.h include | Keith Whitwell | |
2010-06-03 | gallivm: Factor out the quad derivative code into a single place. Fix ddy. | José Fonseca | |
For ddy it should be (bottom - top). | |||
2010-05-20 | gallivm: rename a var: s/val/array_size/ | Brian Paul | |
2010-05-17 | gallivm: Tweak ret_mask handling. | José Fonseca | |
2010-05-17 | gallivm: implement function calls by inlining | Zack Rusin | |
with this approach we inline the entire function body in the caller | |||
2010-05-15 | gallivm: Temporarily remove function call support | José Fonseca | |
Commits moved to the gallivm-call feature branch for further experimentation and stabilization. | |||
2010-05-15 | gallivm: use our util_snprintf | Zack Rusin | |
2010-05-15 | gallivm: implement function calls | Zack Rusin | |
2010-05-14 | tgsi: clean up in emit_fetch() | Brian Paul | |
2010-05-13 | gallivm: silence uninitialized var warning | Brian Paul | |
2010-05-13 | gallivm: silence uninitialized var warning | Brian Paul | |