Am 26.05.2016 um 16:06 schrieb Brian Paul: > Tested with new piglit gl-3.2-adj-prims test. > --- > src/gallium/auxiliary/indices/u_unfilled_gen.py | 26 > ++++++++++++++++++++-- > src/gallium/auxiliary/indices/u_unfilled_indices.c | 14 ++++++++++++ > 2 files changed, 38 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/auxiliary/indices/u_unfilled_gen.py > b/src/gallium/auxiliary/indices/u_unfilled_gen.py > index 873e781..18d9968 100644 > --- a/src/gallium/auxiliary/indices/u_unfilled_gen.py > +++ b/src/gallium/auxiliary/indices/u_unfilled_gen.py > @@ -35,14 +35,18 @@ PRIMS=('tris', > 'tristrip', > 'quads', > 'quadstrip', > - 'polygon') > + 'polygon', > + 'tristripadj', > + 'trisadj') Maybe switch the order of tristripadj and trisadj (and just below too) for consistency? No big deal though.
For the series: Reviewed-by: Roland Scheidegger <srol...@vmware.com> > > LONGPRIMS=('PIPE_PRIM_TRIANGLES', > 'PIPE_PRIM_TRIANGLE_FAN', > 'PIPE_PRIM_TRIANGLE_STRIP', > 'PIPE_PRIM_QUADS', > 'PIPE_PRIM_QUAD_STRIP', > - 'PIPE_PRIM_POLYGON') > + 'PIPE_PRIM_POLYGON', > + 'PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY', > + 'PIPE_PRIM_TRIANGLES_ADJACENCY') > > longprim = dict(zip(PRIMS, LONGPRIMS)) > intype_idx = dict(ubyte='IN_UBYTE', ushort='IN_USHORT', uint='IN_UINT') > @@ -194,6 +198,22 @@ def quadstrip(intype, outtype): > postamble() > > > +def trisadj(intype, outtype): > + preamble(intype, outtype, prim='trisadj') > + print ' for (i = start, j = 0; j < out_nr; j+=6, i+=6) { ' > + do_tri( intype, outtype, 'out+j', 'i', 'i+2', 'i+4' ); > + print ' }' > + postamble() > + > + > +def tristripadj(intype, outtype): > + preamble(intype, outtype, prim='tristripadj') > + print ' for (i = start, j = 0; j < out_nr; j+=6, i+=2) { ' > + do_tri( intype, outtype, 'out+j', 'i', 'i+2', 'i+4' ); > + print ' }' > + postamble() > + > + > def emit_funcs(): > for intype in INTYPES: > for outtype in OUTTYPES: > @@ -203,6 +223,8 @@ def emit_funcs(): > quads(intype, outtype) > quadstrip(intype, outtype) > polygon(intype, outtype) > + trisadj(intype, outtype) > + tristripadj(intype, outtype) > > def init(intype, outtype, prim): > if intype == GENERATE: > diff --git a/src/gallium/auxiliary/indices/u_unfilled_indices.c > b/src/gallium/auxiliary/indices/u_unfilled_indices.c > index 49fff6b..8cb5192 100644 > --- a/src/gallium/auxiliary/indices/u_unfilled_indices.c > +++ b/src/gallium/auxiliary/indices/u_unfilled_indices.c > @@ -22,6 +22,12 @@ > * USE OR OTHER DEALINGS IN THE SOFTWARE. > */ > > + > +/* > + * NOTE: This file is not compiled by itself. It's actually #included > + * by the generated u_unfilled_gen.c file! > + */ > + > #include "u_indices.h" > #include "u_indices_priv.h" > #include "util/u_prim.h" > @@ -104,6 +110,14 @@ nr_lines(unsigned prim, unsigned nr) > return (nr - 2) / 2 * 8; > case PIPE_PRIM_POLYGON: > return 2 * nr; /* a line (two verts) for each polygon edge */ > + /* Note: these cases can't really be handled since drawing lines instead > + * of triangles would also require changing the GS. But if there's no GS, > + * this should work. > + */ > + case PIPE_PRIM_TRIANGLES_ADJACENCY: > + return (nr / 6) * 6; > + case PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY: > + return ((nr - 4) / 2) * 6; > default: > assert(0); > return 0; > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev