summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_llvm.c
AgeCommit message (Collapse)Author
2010-04-29draw llvm: stay in bounds even if fetch_count % 4 != 0Zack Rusin
if fetch_count % 4 != 0 then on the last iteration we fetch garbage. this patch makes sure we stay within bounds
2010-04-26draw/llvm: implement fetch elts pathsZack Rusin
we were only running the llvm paths when the input elts were linear, now we can handle abritrary fetch elts arrays. we do this by generating two paths - linear and fetch_elts one and just selecting the right one at run time.
2010-04-25draw: Respect pipe_vertex_buffer::max_index in llvm generated code.José Fonseca
Everybody should respect max_index, specially llvm generated code, which likes to eat vertices 4 at a time, so it may end up chew a bit a bit more than actually exists.
2010-04-23draw: use FREE() instead of free()Stephen Johnson
2010-04-22gallivm: implement indirect addressing over temporariesZack Rusin
a bit more involved than indirect addressing over consts, but still fairly reasonable. we allocate an array instead of individual alloca's, and we do it only if the shader does indirect addressing.
2010-04-19draw llvm: Remove unnecessary header.Vinson Lee
2010-04-19draw llvm: fix constructor messZack Rusin
use just one constructor to figure out whether to use llvm.
2010-04-16gallium/draw: fix breakage from moving lp_bld_* filesBrian Paul
2010-04-13draw llvm: Initialize variable.Vinson Lee
2010-04-08draw: Fix vertex buffer indexation.José Fonseca
2010-04-08draw llvm: Remove unnecessary header.Vinson Lee
2010-04-07draw llvm: highly reduce the compilation times for draw llvmZack Rusin
our code resets pipe_vertex_buffer's with different offsets when rendering vbo, meaning that we kept creating insane number of shaders even for simple apps e.g. geartrain had 54 shaders and it was taking almost 27 seconds just to compile them. this patch passes pipe_vertex_buffer's to the jit function and lets it to the stride/buffer_offset computation at run time. the slowdown at runtime is largely unnoticable but the we go from 54 shaders to 3, and from 27 seconds to less than 1.
2010-04-07draw: Fix MSVC build (snprintf->util_snprintf).José Fonseca
2010-04-07llvmpipe: Fix USE_DRAW_LLVM build. Use lp_build_engine.José Fonseca
2010-04-06draw llvm: disable printing of the LLVM irZack Rusin
2010-04-06draw llvm: implement simple pipeline caching using variantsZack Rusin
2010-04-06draw llvm: fix iteration for larger vertex arraysZack Rusin
we were trying to store the outputs starting at the same offset we were using for the input arrays, which was writing beyond the end of the output array.
2010-04-06draw llvm: iterate with the correct stop over the outputsZack Rusin
it's whatever the var step is (4 usually) not an unconditional 1
2010-04-06draw llvm: fix draw arraysZack Rusin
we don't index within the outputs but only within the inputs
2010-04-06draw llvm: fix loop iteration and vertex header offsetsZack Rusin
the loop was doing a NE comparison which we could have skipped if the prim was triangles (3 verts) and our step was 4 verts. also fix offsets in conversion to aos.
2010-04-05draw llvm: when generating the vertex_header struct adjust its nameZack Rusin
change the name to not clash and accuretly represent the number of inputs we store in the data member
2010-04-02draw llvm: fix storing of outputs for the rest of the pipelineZack Rusin
there's no good way of aligning the output's, and since the vertex_header is variable sized in the first place we need to extract elements from a vector and store them individually into an array. this gets the basic examples working again
2010-04-01draw llvm: a lot better storing implementationZack Rusin
2010-03-31draw llvm: fix iteration over buffersZack Rusin
fetching was converting garbage
2010-03-30draw llvm: fix a warningZack Rusin
2010-03-30draw llvm: actually set the constant buffers on the contextZack Rusin
2010-03-30draw llvm: fix some silly mistakesZack Rusin
the vs_type selection isn't ideal, but for now both llvmpipe's fs and vs do the same thing which is operate on 4xfloat vector as the base type
2010-03-30draw llvm: various fixes for the translation codeZack Rusin
the from translation isn't quite right yet
2010-03-29draw llvmpipe: lots of fixes for fetch/emitZack Rusin
the values passed are still not right, but the general scheme is looking good.
2010-02-22gallium/draw: initial code to properly support llvm in the draw moduleZack Rusin
code generate big chunks of the vertex pipeline in order to speed up software vertex processing.