summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c
AgeCommit message (Collapse)Author
2010-08-25draw: specialized cliptesting routinesKeith Whitwell
2010-08-25draw: Remove UNDEFINED_VERTEX_ID checks in emit pathes.Chia-I Wu
UNDEFINED_VERTEX_ID is used by draw_pipe_vbuf to decide whether a vertex has been emitted or not. The non-pipeline pathes do not use it (they tell the frontend the max vertex count when prepare() is called).
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: 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-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-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-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-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-03-26draw: Use translate function instead of switch casesJakob Bornecrantz
2010-02-22gallium: Remove bypass_vs_clip_and_viewport from rasteriser state.Michal Krol
Needs testing.
2010-01-21draw: Remove unnecessary headers.Vinson Lee
2009-10-02gallium: remove // comment and extra whitespaceBrian Paul
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: second argument to unmap is max, not countKeith Whitwell
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.
2009-01-27gallium: standardize on stride instead of pitch in the interfaceZack Rusin
2008-12-10gallium: change 65535 to UNDEFINED_VERTEX_IDAlan Hourihane
2008-12-10gallium: more vertex count checksAlan Hourihane
2008-12-10gallium: temporary check for > 65535 verticesAlan Hourihane
2008-10-06make draw's vertex_info struct smaller/quicker to compare with memcmp()Keith Whitwell
2008-10-02draw: don't keep refetching constant inputsKeith 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: split long prims into chunks with an even number of verticesBrian Paul
This fixes culling "parity" errors when splitting long tri strips. Splitting strips into chunks with an odd number of vertices causes front/back-face orientation to get reversed and upsets culling.
2008-06-06draw: fix intermediate buffer confusion in draw_vs_varient.cKeith Whitwell
The final output buffer can't be used to hold intermediate results as the intermediate vertex size may be greater than the final vertex size, and in any case the output buffer may be uncached in hw drivers.
2008-06-04draw: respect driver's max vertex buffer sizeKeith Whitwell
2008-05-29draw: draw_range_elements trialKeith Whitwell
2008-05-29draw: share machineKeith Whitwell
2008-05-27draw: support psize in vs_varient pathsKeith Whitwell
Preserve the vinfo "EMIT_*" format descriptors in the varient key, and deal with PSIZE directly in each implementation.
2008-05-27draw: add disabled debug codeKeith Whitwell
2008-05-27draw: ensure vs outputs mapped correctly to vinfo attribsKeith Whitwell
2008-05-27draw: explicitly list nr_inputs, outputs in varient keyKeith Whitwell
2008-05-27draw: Fix for EMIT_4UB caseJakob Bornecrantz
2008-05-27draw: hook up viewport / rhw emit to varient key stateKeith Whitwell
2008-05-23draw: fse works with elts, remove assertKeith Whitwell
2008-05-23draw: add viewport to varient stateKeith Whitwell
2008-05-23draw: create specialized vs varients incorporating fetch & emitKeith Whitwell
2008-05-23draw: get rid of fetch-shade-emit frontend hackKeith Whitwell
The code is now living in it's intended place as a pt middle end.
2008-05-12draw: turn fse path into a middle endKeith Whitwell
Also add some util functions in pt_util.c
2008-05-12draw: add fetch-shade-emit pathKeith Whitwell
Enable with TEST_FSE=t. Performs fetch from API-provided vertex buffers, transformation with one of three (two working) hard-coded shaders, and final emit to hardware vertices all in a single pass. Currently only really useful for profiling in conjunction with SP_NO_RAST=t.