Series looks good to me. Reviewed-by: Brian Paul <bri...@vmware.com>
Jose ----- Original Message ----- > I don't see how this could have ever worked right. > > The screen-space interpolation code uses the vertex->data[pos_attr] > position which contain window coords. But window coords are only > computed for the unclipped vertices; the clipped vertices have > undefined window coords (see draw_cliptest_tmp.h). > > Use the vertex clip coords instead which are always defined. > > Fixes http://bugs.freedesktop.org/show_bug.cgi?id=55476 > (piglit fbo-blit-stretch failure on softpipe) > > Note: This is a candidate for the 9.0 branch. > --- > src/gallium/auxiliary/draw/draw_pipe_clip.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/src/gallium/auxiliary/draw/draw_pipe_clip.c > b/src/gallium/auxiliary/draw/draw_pipe_clip.c > index 878d779..7b879c4 100644 > --- a/src/gallium/auxiliary/draw/draw_pipe_clip.c > +++ b/src/gallium/auxiliary/draw/draw_pipe_clip.c > @@ -168,9 +168,9 @@ static void interp( const struct clip_stage > *clip, > int k; > t_nopersp = t; > for (k = 0; k < 2; k++) > - if (in->data[pos_attr][k] != out->data[pos_attr][k]) { > - t_nopersp = (dst->data[pos_attr][k] - > out->data[pos_attr][k]) / > - (in->data[pos_attr][k] - out->data[pos_attr][k]); > + if (in->clip[k] != out->clip[k]) { > + t_nopersp = (dst->clip[k] - out->clip[k]) / > + (in->clip[k] - out->clip[k]); > break; > } > } > -- > 1.7.3.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev