summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
AgeCommit message (Collapse)Author
2010-08-25draw: specialized cliptesting routinesKeith Whitwell
2010-08-16draw: No need to make max_vertices even.Chia-I Wu
Triangle strip alternates the front/back orientation of its triangles. max_vertices was made even so that varray never splitted a triangle strip at the wrong positions. It did not work with triangle strips with adjacencies. And it is no longer relevant with vsplit.
2010-08-16draw: Remove DRAW_PIPE_MAX_VERTICES and DRAW_PIPE_FLAG_MASK.Chia-I Wu
The higher bits of draw elements are no longer used for the stipple or edge flags.
2010-08-16draw: Add prim flags to middle ends.Chia-I Wu
Update the middle end interface to pass the primitive flags from the frontends to the pipeline. No frontend sets the flags yet.
2010-08-16draw: Add flags to draw_prim_info.Chia-I Wu
A primitive may be splitted in frontends. The splitted primitives should convey certain flag bits so that the decomposer can correctly decide the stipple or edge flags. This commit adds flags to draw_prim_info and updates the decomposer to honor the flags. Frontends and middle ends will be updated later.
2010-07-29gallium: implement bounds checking for constant buffersBrian Paul
Plumb the constant buffer sizes down into the tgsi interpreter where we can do bounds checking. Optional debug code warns upon out-of-bounds reading. Plus add a few other assertions in the TGSI interpreter.
2010-06-25draw: Work around an invalid write.Chia-I Wu
SSE vertex shader does not seem to honor the execution mask. Pad the output array as a workaround.
2010-06-23draw: use gallium's TRUE/FALSEBrian Paul
2010-06-23draw: don't try to precalculate the pipeline output primitiveKeith Whitwell
We were previously calculating a value which was either the geometry shader output primitive or the application's input primitive, and passing that to the various front/middle/back components for use as the ultimate rendering primtive. Unfortunately, this was not correct -- if the vcache decomposition path is active and geometry shaders are *not* active, we can end up with a third primitive -- specifically the decomposed version of the input primitive. Rather than trying to precalculate this, just let the individual components inform their successors about which primitive type they are recieving.
2010-06-16draw: rewrite stream output to handle all the dark cornersZack Rusin
register masks, multiple output buffers, multiple primitives, non-linear vertices (elts) and stride semantics.
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-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-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-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-02-22gallium: Remove bypass_vs_clip_and_viewport from rasteriser state.Michal Krol
Needs testing.
2010-01-28gallium: Enable multiple constant buffers for vertex and geometry shaders.Michal Krol
2010-01-27gallium/draw: Remove unnecessary headers.Vinson Lee
2010-01-16gallium: Fix uninitialized instance divisor and index.Chia-I Wu
2010-01-05Merge branch 'master' into instanced-arraysMichal Krol
Conflicts: src/gallium/auxiliary/tgsi/tgsi_dump.c src/gallium/include/pipe/p_shader_tokens.h
2009-12-30Add lame support for instanceID to draw module.Michal Krol
It's all screaming for integer support -- fake it with float for now.
2009-12-25gallium: add geometry shader support to galliumZack Rusin
2009-12-14gallium: more work for edgeflags changesRoland Scheidegger
fixes, cleanups, etc. not working yet
2009-12-09gallium: first steps to treat edgeflags as regular vertex elementKeith Whitwell
The idea here is to eliminate the set_edgeflags() call in pipe_context by treating edgeflags as a regular vertex element. Edgeflags provoke special treatment in hardware, which means we need to label them in some way, in this case we'll be passing them through the vertex shader and labelling the vertex shader output with a new TGSI semantic (TGSI_SEMANTIC_EDGEFLAG).
2009-05-05gallium/draw: cope with unused vertex_elementsKeith Whitwell
2009-03-13gallium: consolidate bypass_vs and bypass_clipping flagsKeith Whitwell
The draw module provides a similar interface to the driver which is retained as various bits of hardware may be able to take on incremental parts of the vertex pipeline. However, there's no need to advertise all this complexity to the state tracker. There are basically two modes now - normal and passthrough/screen-coords.
2009-02-17draw: add map/unmap directives for swtnl driver interfaceKeith Whitwell
Previously draw module asked for a pointer into (mapped) vertex data, which it would incrementally fill and emit draw commands against. This was hard for the drivers to deal with, especially in the case where a draw command would force a flush and thus an unmap of the vertex data. With this change, the draw module explicitly maps & then unmaps vertex data prior to emitting draw commands.
2008-08-26draw: attempt atomic submit of large drawelements callsKeith Whitwell
2008-08-24gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.hBrian Paul
Also, rename p_tile.[ch] to u_tile.[ch]
2008-08-22gallium: replace align_int() with align()Brian Paul
The two functions are identical. Removed align_int() from p_util.h
2008-06-18gallium: additional fixes to ensure even number of vertices per bufferBrian Paul
2008-06-04draw: respect driver's max vertex buffer sizeKeith Whitwell
2008-05-29psb: Make msvc happy.José Fonseca
Conflicts: src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
2008-05-29draw: draw_range_elements trialKeith Whitwell
2008-05-23draw: move some state into a new 'vs' areaKeith Whitwell
2008-05-08redo the linear pathsZack Rusin
2008-05-08implement linear emition and fetching and plug it in the varray pathsZack Rusin
2008-04-28gallium: Generate SSE code to swizzle and unswizzle vs inputs and outputs.Michal Krol
Change SSE_SWIZZLES #define to 0 to disable it.
2008-04-22draw: allow drivers to query pipeline state more easilyKeith Whitwell
Also, provide a separate flag to say whether the driver can handle clipping/rhw tasks, in addition to the API flag which indicates they have already been done.
2008-04-21draw: propogate lots of errorsKeith Whitwell
2008-04-19draw: move incoming vertex state into draw->ptKeith Whitwell
This state is effectively private to the vertex processing part of the draw module.
2008-04-19draw: make room for extra_vs_outputsKeith Whitwell
2008-04-19draw: move pt_pipeline code to draw_pipe.cKeith Whitwell
This is now the drawing interface to the pipeline. No more calling into pipeline.first->tri(), etc.
2008-04-19draw: always emit header in draw_pt_fetch.cKeith Whitwell
2008-04-18draw: split off all the extra functionality in the vertex shaderKeith Whitwell
This will at least allow us to make the initial gains to get decent vertex performance much more quickly & with higher confidence of getting it right. At some later point can look again at code-generating all the fetch/cliptest/viewport extras in the same block as the vertex shader. For now, just need to get some decent baseline performance.
2008-04-17draw: move hw vertex emit to a new moduleKeith Whitwell
2008-04-17draw: add vertex shader run_linear functionKeith Whitwell