summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw
AgeCommit message (Collapse)Author
2010-05-21Merge branch 'gallium-front-ccw'Keith Whitwell
2010-05-14draw: fix front/back error in unfilled pipeline stageKeith Whitwell
2010-05-14draw: fix typo checking for unfilled polygonsKeith Whitwell
2010-05-14gallium: convert rasterizer state to use gl-style front/back conceptsKeith Whitwell
Use front/back instead of cw/ccw throughout. Also, use offset_point/line/fill instead of offset_cw/ccw. Brings gallium representation of this state into line with its main user, and also what turns out to be the most common hardware representation. This fixes a long-standing bias in the interface towards the architecture of the software rasterizer.
2010-05-13draw: silence casting warningsBrian Paul
2010-05-08gallivm: Add an alternative to LLVMDumpValue that works with Windows GUI apps.José Fonseca
2010-05-07gallium/draw: additional comments in the clipping codeBrian Paul
2010-05-06gallivm: Require SSE2 for draw_llvm/llvmpipe due to LLVM PR6960.Török Edwin
Note that this also requires X86 for llvm, if llvmpipe/draw_llvm works on PPC then the condition should be extended to include && x86. Signed-off-by: Török Edwin <edwintorok@gmail.com> Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-05-05gallium: still more provoking vertex fixesBrian Paul
This fixes edge flags for polygons and provoking vertex for filled quads.
2010-05-05gallium: added edge flag print/debug code (disabled)Brian Paul
2010-05-05gallium: rename draw() to draw_elements() in vbuf codeBrian Paul
Now we have draw_elements() and draw_arrays() to be consistent with the pipe_context drawing functions.
2010-05-05gallium: rework provoking vertex codeBrian Paul
Builds on commit ddb0e18f6c5582d4d2cc59ffd16ad9c4639ed059 and fixes regressions in glean clipFlat test. We assume that Gallium drivers observe flatshade_first for all triangles and that all the assorted per-triangle calls in the 'draw' module also follow flatshade_first. Everything else builds on those rules. Gallium does not use follow flatshade_first for GL quads, quad strips and polygons; the "last" vertex is always the provoking vertex for those prims. So now there are separate QUAD_FIRST_PV and QUAD_LAST_PV macros in the draw primitive decomposition code instead of one QUAD macro.
2010-05-04draw: Remove unnecessary header.Vinson Lee
2010-05-05draw: Preserve the provoking vertex both when decomposing and clipping.José Fonseca
Based on John Lawless' feedback.
2010-05-05draw: Adjust wideline vertex coords for D3D.Brian Paul
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-03draw: Remove draw_pt_fetch_prepare call from llvm middle end.José Fonseca
Unneeded since we code generate the vertex fecthes.
2010-05-03draw: Disable rtasm compilation when using LLVM.José Fonseca
Saves time and trouble.
2010-05-15draw: Use GALLIVM_DEBUG opt.José Fonseca
2010-04-30draw: Fix memory leaks in llvm code.José Fonseca
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-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-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-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-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-23gallium/draw: remove old commentBrian Paul
2010-04-23gallium: Convert some uses of get option to staticJakob Bornecrantz
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-21draw: Make LLVM integration work without llvmpipe too (e.g. sofptipe).José Fonseca
Prevents the assertion failure.
2010-04-21gallium/draw: fix point sprite handlingBrian Paul
New draw API function to indicate whether or not to convert points to quads for sprite rasterization. Fix point-to-quad conversion regression in the wide-point stage. We need to check the pipe_rasterizer_state::point_quad_rasterization flag.
2010-04-21gallium/draw: use local var to simplify codeBrian Paul
2010-04-20gallivm: Universal format support on lp_build_fetch_rgba_aos via ↵José Fonseca
util_format_description::fetch_rgba_float This therefore adds support to half float vertex buffers.
2010-04-20draw: Fallback to gallivm for translation of ↵José Fonseca
A8R8G8B8/B8G8R8A8/R10G10B10X2/R10G10B10X2 and other formats. These need swizzles, and bitshifts.
2010-04-20draw: Remove draw_vs_llvm.c.José Fonseca
To silence some warnings. Super-seeded by Zack's new llvm middle end.
2010-04-20Merge branch 'gallium-index-bias'José Fonseca
2010-04-20draw: No need to rebase for elt_bias.José Fonseca
As we are rebasing to min_index + elt_bias, and the vertex buffer has no elt_bias. I still don't know how to exercise this code. I hope this is now right.
2010-04-20draw: Fix cache elt_bias implementation.José Fonseca
2010-04-20draw: Fix typo resulting from bad regular expression in index bias addition.José Fonseca
2010-04-20draw llvm: Move dereference of pointer after NULL check.Vinson Lee
2010-04-19draw llvm: Remove unnecessary header.Vinson Lee
2010-04-19draw llvm: make sure use_llvm isn't used when not definedZack Rusin
2010-04-19draw llvm: fix typo (boolean, not bool)Zack Rusin
2010-04-19draw llvm: allow runtime switching of pipelines (yes/no to llvm)Zack Rusin
use DRAW_USE_LLVM to disable or enable (default) llvm