summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/llvmpipe
Commit message (Collapse)AuthorAgeFilesLines
* llvmpipe: Silence unused value warning.Vinson Lee2010-07-301-0/+1
|
* llvmpipe: Fix implicit declaration of lp_func_delete_body warnings.Vinson Lee2010-07-301-0/+1
|
* llvmpipe: delete function bodies after generating machine codeZack Rusin2010-07-301-0/+1
|
* llvmpipe: fix on-debug build breakageBrian Paul2010-07-291-1/+1
|
* llvmpipe: added some jit debug codeBrian Paul2010-07-292-0/+40
| | | | | If we crash in the jitted function we can examine jit_line and jit_state in gdb to learn more about the shader.
* llvmpipe: silence warnings in lp_test_sincos.cBrian Paul2010-07-291-2/+3
|
* llvmpipe: also test the new lp_build_assert() functionBrian Paul2010-07-291-0/+4
|
* llvmpipe: don't call LLVMCreateJITCompiler() twiceBrian Paul2010-07-295-45/+14
| | | | | | | | | Fixes a failed assertion with LLVM 2.6: <unnamed>::JITResolver::JITResolver(llvm::JIT&): Assertion `TheJITResolver == 0&& "Multiple JIT resolvers?"' failed. Though, not everyone seems to experience this problem.
* scons: Use the current python executable for code generation.José Fonseca2010-07-291-1/+2
| | | | Less susceptible to be broken.
* llvmpipe: Avoid corrupting the FPU stack with MMX instructions on 32bit OSes.José Fonseca2010-07-291-0/+5
| | | | | | | Unfortunately LLVM doesn't emit EMMS itself, and there is no easy/effective way to disable MMX. http://llvm.org/bugs/show_bug.cgi?id=3287
* gallium: Avoid void pointer arithmetic.Chia-I Wu2010-07-291-2/+2
| | | | This fixes fdo bug #29286.
* gallium: Keep only pipe_context::draw_vbo.Chia-I Wu2010-07-291-151/+0
| | | | | | | That is, remove pipe_context::draw_arrays, pipe_context::draw_elements, pipe_context::draw_arrays_instanced, pipe_context::draw_elements_instanced, pipe_context::draw_range_elements.
* gallium: Implement draw_vbo and set_index_buffer for all drivers.Chia-I Wu2010-07-293-27/+78
| | | | | | | | | | | | | | | Some drivers define a generic function that is called by all drawing functions. To implement draw_vbo for such drivers, either draw_vbo calls the generic function or the prototype of the generic function is changed to match draw_vbo. Other drivers have no such generic function. draw_vbo is implemented by calling either draw_arrays and draw_elements. For most drivers, set_index_buffer does not mark the state dirty for tracking. Instead, the index buffer state is emitted whenever draw_vbo is called, just like the case with draw_elements. It surely can be improved.
* llvmpipe: pass face+slice to llvmpipe_unswizzle_cbuf_tile()Brian Paul2010-07-271-2/+3
| | | | | | | | Cube map faces and 3D texture slices are treated the same in llvmpipe textures. Need to pass the sum of these fields to llvmpipe_unswizzle_cbuf_tile() as we do elsewhere. Fixes piglit fbo-3d test (fd.o bug 29135).
* llvmpipe: Use lp_build_select_bitwise() where appropriate.José Fonseca2010-07-271-11/+11
| | | | Fixes fdo 29269.
* llvmpipe: Partially fix resource texture from_handleJakob Bornecrantz2010-07-221-1/+35
|
* llvmpipe: Don't align values already alignedJakob Bornecrantz2010-07-221-2/+2
|
* llvmpipe: say no to depth clampMarek Olšák2010-07-211-0/+2
| | | | The other drivers just return 0 without the assert.
* llvmpipe: Remove dead initialization.Vinson Lee2010-07-181-1/+1
|
* llvmpipe: Remove unused variable in lp_test_sincos.Vinson Lee2010-07-171-2/+0
|
* llvmpipe: use single swizzled tileKeith Whitwell2010-07-167-100/+148
| | | | | | | | | | | | | Use a single swizzled tile per colorbuf (and per thread) to avoid accumulating large amounts of cached swizzled data. Now that the SSE3 code has been merged to master, the performance delta of this change is minimal, the main benefit is reduced memory usage due to no longer keeping swizzled copies of render targets. It's clear from the performance of the in-place version of this code that there is still quite a bit of time being spent swizzling & unswizzling, but it's not clear exactly how to reduce that.
* llvmpipe: Describe _mm_shuffle_epi8() with gcc extended inline assembly when ↵José Fonseca2010-07-161-3/+30
| | | | -mssse3 is not supported/enabled.
* llvmpipe: Only use -mssse3 on gcc 4.3+José Fonseca2010-07-161-1/+5
|
* llvmpipe: implement instanced drawing functionsBrian Paul2010-07-151-20/+108
| | | | | And express all the other drawing functions in terms of llvmpipe_draw_range_elements_instanced().
* llvmpipe: Remove redundant statement.José Fonseca2010-07-151-1/+0
| | | | Thanks to Vinson for spotting this.
* llvmpipe: delete lp_test_*.o files with make cleanBrian Paul2010-07-141-0/+3
|
* llvmpipe: Remove redundant alignments.José Fonseca2010-07-142-3/+1
| | | | | | | The lp_rast_shader_inputs' alignment is irrelevant now that it contains pointers instead of actual data. Likewise, lp_rast_triangle's size alignment is meaningless.
* llvmpipe: Addi ssse3 swizzling for B8G8R8A8_UNORM.Chris Li2010-07-143-3/+231
|
* llvmpipe: fix comment typoRoland Scheidegger2010-07-131-2/+2
|
* llvmpipe: move rasterizer to screen instead of setup contextRoland Scheidegger2010-07-134-13/+22
| | | | | there's no point of having this per context, so move to screen (and protect with a mutex).
* llvmpipe: Align texture data to the cache line.José Fonseca2010-07-131-2/+5
|
* llvmpipe: eliminate the set_state rasterizer commandKeith Whitwell2010-07-138-92/+22
| | | | | | Just put a pointer to the state in the tri->inputs struct. Remove some complex logic for eliminating unused statechanges in bins at the expense of a slightly larger triangle struct.
* llvmpipe: pass mask into fragment shaderKeith Whitwell2010-07-1314-790/+901
| | | | | | | | | Move this code back out to C for now, will generate separately. Shader now takes a mask parameter instead of C0/C1/C2/etc. Shader does not currently use that parameter and rasterizes whole pixel stamps always.
* llvmpipe: move fences from per-bin to per-threadKeith Whitwell2010-07-138-29/+58
| | | | | | | | | Rather than inserting an lp_rast_fence command at the end of each bin, have each rasterizer thread call this function directly once it has run out of work to do on a particular scene. This results in fewer calls to the mutex & related functions, but more importantly makes it easier to recognize empty bins.
* llvmpipe: Always swizzle/unswizzle whole tiles.José Fonseca2010-07-133-18/+18
| | | | | This was already the case, but the generated (un)swizzling code was not benefiting of that knowledge.
* llvmpipe: Ignores!Jakob Bornecrantz2010-07-131-0/+1
|
* llvmpipe: Re-enable threading on windows.José Fonseca2010-07-121-6/+0
|
* llvmpipe: Don't build lp_test_round when using MSVC.Vinson Lee2010-07-061-1/+3
| | | | | | | lp_test_round uses the math functions round and trunc, which aren't available with MSVC. Fixes the MSVC build for now.
* llvmpipe: Add lp_test_round to SCons build.Vinson Lee2010-07-061-0/+1
|
* llvmpipe: add test program for round(), trunc(), floor(), ceil()Brian Paul2010-07-062-0/+278
|
* llvmpipe: disconnect vertex texture sampling from the setupZack Rusin2010-07-068-89/+85
| | | | | | | it was wrong to put this in the fs paths, but it was easier to just stuff it along the fragment texture sampling paths. the patch disconnects vertex texture sampling and just maps the textures before the draw itself and unmaps them after.
* draw: implement vertex texture sampling using llvmZack Rusin2010-07-066-4/+96
|
* llvmpipe: ensure all bins are reset avoids memory corruption.Alan Hourihane2010-07-061-2/+2
|
* llvmpipe: wait for queries being finished when asked for it or before deletionRoland Scheidegger2010-07-051-6/+26
| | | | | This fixes bug #28757, though does not yet address the issue that fences aren't always emitted.
* gallivm: Support multiple pixels in lp_build_fetch_rgba_aos().José Fonseca2010-07-021-1/+3
| | | | | This allows to do the unpacking of formats that fit in 4 x unorm8 in parallel, 4 pixels at a time.
* gallivm: Fix 4 x unorm8 -> 4 x float conversion.José Fonseca2010-07-021-1/+1
| | | | Also fix the test.
* llvmpipe: silence pointer type warningsBrian Paul2010-07-011-4/+8
|
* gallivm: Support 4 x unorm8 in lp_build_fetch_rgba_aos().José Fonseca2010-07-011-71/+159
| | | | Uses code and ideas from Brian Paul.
* gallivm: Allow to conversions to/from registers of different sizes.José Fonseca2010-07-011-4/+16
| | | | | | Allow for example to convert from 4 x float32 to 4 x unorm8 and vice versa. Uses code and ideas from Brian Paul.
* llvmpipe: Remove lp_build_swizzle2_aos().José Fonseca2010-07-011-22/+19
| | | | Unnecessary special case.