summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary
AgeCommit message (Collapse)Author
2010-05-03gallium: move surface utility functions into u_surface.cBrian Paul
This is a better place than in u_rect.c
2010-05-04gallivm: Increase the TGSI translation limits and centralize them in a header.José Fonseca
2010-05-04gallicm: Newton-Raphson step to improve precision.José Fonseca
Disabled as it doesn't make VS/PSPrecision DCT happy, and it would unnecessarily slow some cases where it is not needed.
2010-05-03cso: use framebuffer utility functionsBrian Paul
2010-05-03gallium: move framebuffer utility functions into a new fileBrian Paul
2010-05-03util: add util_format_short_nameMarek Olšák
2010-05-03util: add util_format_is_plainMarek Olšák
2010-05-03Reorder LLVM passes, running mem2reg earlier.Török Edwin
This gives a ~30% shader optimization time improvement on blender. Tested by comparing the dumped LLVM modules. Current ordering: time ~/llvm-git/obj/Release-Asserts/bin/opt l.bc -constprop -instcombine -mem2reg -gvn -simplifycfg real 0m1.126s user 0m1.108s sys 0m0.012s With this patch: time ~/llvm-git/obj/Release-Asserts/bin/opt l.bc -mem2reg -constprop -instcombine -gvn -simplifycfg real 0m0.885s user 0m0.880s sys 0m0.000s The overall improvement in blender is ~15%. Blender without the patch takes 1m13s: edwin 5934 87.6 11.5 729440 458296 pts/5 SLl+ 17:35 1:13 blender Blender with the patch takes 1m3s: edwin 5726 94.2 11.2 716424 446168 pts/5 SLl+ 17:32 1:03 blender It is still slow with the patch, but better (most of the optimization time is taken up by GVN, see LLVM PR7023). Signed-off-by: Török Edwin <edwintorok@gmail.com> Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-05-03gallivm: Display message instead of crashing when sampler generator was not ↵José Fonseca
supplied for tgsi translation.
2010-05-03translate: Make translate_generic truly generic.José Fonseca
PIPE_FORMAT_R10G10B10X2_USCALED, half floats, were not supported, so just rely on u_format for (almost) universal format support.
2010-05-03draw: Remove draw_pt_fetch_prepare call from llvm middle end.José Fonseca
Unneeded since we code generate the vertex fecthes.
2010-05-03tgsi: Parse and dump predicates.José Fonseca
2010-05-03gallium: Remove loop register file.José Fonseca
It was only used for D3D's REP/END/BGNFOR/ENDFOR. D3D's aL register is just like another address register now.
2010-05-03gallivm: Replace predicate assertion failure with warning message.José Fonseca
2010-05-03draw: Disable rtasm compilation when using LLVM.José Fonseca
Saves time and trouble.
2010-05-02gallivm: fix nested break and continue statementsZack Rusin
we were resetting the mask on each new break/continue statement within the same scope. we always need to and the current execution mask with the current break/continue mask to get the correct result (the masks are always ~1 initially)
2010-05-03gallium/util: print \n after DXTn printfLuca Barbieri
Re-add commit 2d65a7caf97684aa654088c76a74b632fbd685fa Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com> Signed-off-by: José Fonseca <jfonseca@vmware.com>
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-30draw: Fix memory leaks in llvm code.José Fonseca
2010-04-30util: Add missing break statement in u_caps.cJakob Bornecrantz
Thanks Vinson.
2010-04-29util: Update caps after helpfull inputJakob Bornecrantz
In no particular order: * Make list const * Add function comments * Clearly state that demo lists are not complete * Fix whitespace * Use __FUNCTION__ instead of __func__ * Add unimplemented check which always fail Thanks Brian and Keith.
2010-04-29util: Add small caps checker helperJakob Bornecrantz
2010-04-29util: Format error format string as the rest of the pipe formatsJakob Bornecrantz
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-29cso: remove commented-out code, update function docsBrian Paul
2010-04-29gallivm: add some assertions in special-case sampler codeBrian Paul
2010-04-29gallium/draw: Fix PPC compiler warning.Michel Dänzer
2010-04-29gallium/draw: Fix PPC build failure.Michel Dänzer
2010-04-28draw: remove extra semicolonsBrian Paul
2010-04-28draw: use a cast wrapperBrian Paul
2010-04-28draw: put 'create' in the vs varient create function namesBrian Paul
2010-04-28draw: add missing function parameterBrian Paul
2010-04-28gallium/util: convert //-style commentsBrian Paul
2010-04-28gallium/util: convert //-style commentsBrian Paul
2010-04-27tgsi: Drop BGNFOR, ENDFOR, REP, and ENDREP opcodes.José Fonseca
2010-04-27gallivm: Drop BGNFOR, ENDFOR, REP, and ENDREP opcodes.José Fonseca
2010-04-27util: fix assorted problems in the image packing functionsBrian Paul
2010-04-27gallivm: Disable llvm.cos.v4f32 and llvm.sin.v4f32 instrinsics on Windows.José Fonseca
Runtime linking doesn't quite work. Just comment then out for now to prevent crashes. These will go away in the future because calling 4 times CRT's cosf()/sinf() is over-precise and under-performing.
2010-04-27gallivm: Ensure all allocas are in the first block.José Fonseca
Refactor the code to make this easier.
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-26gallivm: BGNFOR/ENDFOR fallthrough to BGNLOOP/ENDLOOPAlan Hourihane
2010-04-26draw: Always use the llvm middle end when available & enabled.José Fonseca
2010-04-26draw: Pass-through pipe_buffer::max_index to translate.José Fonseca
max_index must be observed to prevent crashes due to bad index data. I've been using this patch for some time without regressions. Some places, where we use internal vertex buffer, it is not entirely clear what max_index should be, so passing just ~0 to avoid regressions for now.
2010-04-26translate: Take and respect a max_index argument.José Fonseca
2010-04-26os: Check for spurious wakeups in pipe_barrier_wait.Vinson Lee
The POSIX function pthread_cond_wait can have spurious wakeups when waiting on a condition variable. Add a 64-bit counter that is incremented whenever the barrier becomes full. A woken thread checks the counter. If the counter has not changed then it has been spuriously woken and goes back to sleep. If the counter has changed then it was properly signaled and exits the barrier. Tested on Mac OS X. This patch was based on ideas from Luca Barbieri.
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-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-25gallivm: Rename variable info to opcode_info.Vinson Lee
Avoid hiding existing variable already named info in outer scope.
2010-04-24gallivm: Remove NULL check of pointer that can't be NULL.Vinson Lee
info cannot be NULL at the call to debug_printf. emit_instruction dereferences info, so at debug_printf it is either not NULL or the program has already crashed.