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

Reply via email to