This patch seems obviously correct and is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
On 03/23/2015 05:47 AM, ville.syrj...@linux.intel.com wrote: > From: Ville Syrjälä <ville.syrj...@linux.intel.com> > > intelFastRenderClippedPoly() renders the polygon using triangles. For > polygons the provoking vertex is always the first one, and currently > this function assumes that the provoking vertex for triangles is the > last one. In case the user changed the provoking vertex convention, > the hardware may be configured to treat the first vertex of triangles > as the provoking vertex. So check the convention and emit the triangles > in the appropriate order to avoid having to change the hardware > provoking vertex convention for rendering polygons. > > Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com> > --- > src/mesa/drivers/dri/i915/intel_tris.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/src/mesa/drivers/dri/i915/intel_tris.c > b/src/mesa/drivers/dri/i915/intel_tris.c > index 2c0a785..2b62104 100644 > --- a/src/mesa/drivers/dri/i915/intel_tris.c > +++ b/src/mesa/drivers/dri/i915/intel_tris.c > @@ -928,10 +928,18 @@ intelFastRenderClippedPoly(struct gl_context * ctx, > const GLuint * elts, GLuint > const GLuint *start = (const GLuint *) V(elts[0]); > int i, j; > > - for (i = 2; i < n; i++) { > - COPY_DWORDS(j, vb, vertsize, V(elts[i - 1])); > - COPY_DWORDS(j, vb, vertsize, V(elts[i])); > - COPY_DWORDS(j, vb, vertsize, start); > + if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION) { > + for (i = 2; i < n; i++) { > + COPY_DWORDS(j, vb, vertsize, V(elts[i - 1])); > + COPY_DWORDS(j, vb, vertsize, V(elts[i])); > + COPY_DWORDS(j, vb, vertsize, start); > + } > + } else { > + for (i = 2; i < n; i++) { > + COPY_DWORDS(j, vb, vertsize, start); > + COPY_DWORDS(j, vb, vertsize, V(elts[i - 1])); > + COPY_DWORDS(j, vb, vertsize, V(elts[i])); > + } > } > } > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev