summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
AgeCommit message (Collapse)Author
2008-10-06make draw's vertex_info struct smaller/quicker to compare with memcmp()Keith Whitwell
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-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-29draw: draw_range_elements trialKeith Whitwell
2008-05-12draw: mimize cost of translate key compares, use cache universallyKeith Whitwell
2008-05-09draw: fix translate double-free, minor cleanupsKeith Whitwell
2008-05-08redo the linear pathsZack Rusin
2008-05-08implement linear path for fetch_emit pipelineZack Rusin
2008-04-23Add translate cache to fetch_emit stage and add out of memoryZack Rusin
checks to code creating the cache.
2008-04-21draw: squash a couple of memory leaksKeith Whitwell
2008-04-21draw: propogate lots of errorsKeith Whitwell
2008-04-19draw: rearrange debug codeKeith Whitwell
2008-04-19draw: add missing translate->set_buffer for fetch emit pathKeith 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 draw_pt_fetch_emit use translate facilityKeith Whitwell
2008-04-17draw: add commentKeith Whitwell
2008-04-16draw: make pt run pipeline when need_pipeline is true, not just when clippedKeith Whitwell
2008-04-14silence some warningsZack Rusin
2008-04-14draw: flush pipeline before trying to allocate more hw verticesKeith Whitwell
2008-04-10remove usage of vertex_headerKeith Whitwell
2008-04-07draw: strip edgeflags out of fetch-emit pathKeith Whitwell
2008-04-03draw: add passthrough path to the pipelineKeith Whitwell
This handles the case where bypass_vs is set, but vertices need to go through the pipeline for some reason - eg unfilled polygon mode. Demonstrates how to drive the pipeline from inside one of these things.
2008-04-02draw: add missing break statementKeith Whitwell
2008-04-02draw: Set the backend prim in the pt 'prepare' operationKeith Whitwell
Leaving it until 'run' is bad as the primitive is pretty much state for some drivers and so needs to get set early. In some drivers this is used to determine things like vertex format, etc -- by the time we get to 'run', it's too late to change this.
2008-03-27gallium: replace PIPE_ATTRIB_MAX with PIPE_MAX_ATTRIBSBrian
The later follows the naming scheme of other limits. Keep the old definition until all possible usage is updated.
2008-03-23draw: rename emit functions to match pipe_format namesKeith Whitwell
2008-03-23draw: restructure fetch/emit as a pair of function callsKeith Whitwell
2008-03-23gallium: beginnings of draw module vertex reworkKeith Whitwell
Trying to put a structure in place that we can actually optimize. Initially just implementing a passthrough mode, this will fairly soon replace all the vertex_cache/prim_queue/shader_queue stuff that's so hard to understand... Split the vertex processing into a couple of distinct stages: - Frontend - Prepares two lists of elements (fetch and draw) to be processed by the next stage. This stage doesn't fetch or draw vertices, but makes the decision which to draw. Multiple implementations of this will implement different strategies, currently just a vcache implementation. - MiddleEnd - Takes the list of fetch elements, fetches them, runs the vertex shader, cliptest, viewport transform on them to produce a linear array of vertex_header vertices. - Passes that list of vertices, plus the draw_elements (which index into that list) onto the backend - Backend - Either the existing primitive/clipping pipeline, or the vbuf_render hardware backend provided by the driver. Currently, the middle-end is the old passthrough code, and it build hardware vertices, not vertex_header vertices as above. It may be that passthrough is a special case in this respect.