summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw
AgeCommit message (Collapse)Author
2010-06-15draw: run the pipeline with the correct number of vertsZack Rusin
verts per primitive, not total count
2010-06-15draw: fix primitive indexing in the pipelineZack Rusin
spotted by Keith
2010-06-15draw: finish the new pipeline setupZack Rusin
Keith came up with a new way of running the pipeline which involves passing a few info structs around (for fetch, vertices and prims) and allows us to correctly handle cases where we endup with multiple primitives generated by the pipeline itself.
2010-06-15draw wipKeith Whitwell
2010-06-12draw/gs: copy the outputs only if we emitted somethingZack Rusin
2010-06-11gallium/softpipe/draw: support samplers in geometry shadersZack Rusin
2010-06-10draw: forgot to add a fileZack Rusin
2010-06-10draw: rewrite geometry shader pipelineZack Rusin
done to handle strips correctly as inputs - we need to decompose the strips
2010-06-10draw: geometry shader fixesZack Rusin
don't overwrite the inputs and make sure the correct primitive is used on entry
2010-06-10draw: make sure that the gs never outputs more data than we allocated forZack Rusin
2010-06-09draw: make sure geometry shader correctly iterates the output bufferZack Rusin
2010-06-09draw: make sure the buffer is big enough to fit everything emitted by the gsZack Rusin
2010-06-09draw: fix geometry shader which emit multiplie primitivesZack Rusin
2010-06-09geometry shaders: make gs work with changable primitives and variable number ↵Zack Rusin
of vertices lots and lots of fixes for geometry shaders. in particular now we work when the gs emits a different primitive than the one the pipeline was started with and also we work when gs emits more vertices than would fit in the original buffer.
2010-06-08draw: Remove unnecessary headers.Vinson Lee
2010-06-08gallium: scream when one of two unimplemented features in draw is usedZack Rusin
plus used the correctly specified stride
2010-06-08gallium: make draw auto work and add relevant caps and docsZack Rusin
2010-06-08gallium: a lot more complete implementation of stream outputZack Rusin
interface wise we have everything needed by d3d10 and gl transform feedback. the draw module misses implementation of some corner cases (e.g. when stream output wants different number of components per output than normal rendering paths)
2010-06-08gallium: basic and initial implementation of the stream output interfaceZack Rusin
aka transform feedback
2010-06-07draw: don't use llvm engine when geometry shaders activeKeith Whitwell
They aren't implemented for llvm.
2010-05-30draw: Use pointer_to_func() instead of custom wrappers.José Fonseca
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