[Mesa-dev] SandyBridge not handling GL_TRIANGLE_STRIP_ADJACENCY with repeating vertex indices correctly

Samuel Iglesias Gonsálvez siglesias at igalia.com
Wed Aug 27 06:52:34 PDT 2014


On Tue, 2014-08-26 at 15:44 -0700, Kenneth Graunke wrote:
> On Friday, August 22, 2014 12:59:57 PM Samuel Iglesias Gonsálvez wrote:
> > On Thu, 2014-08-14 at 14:28 +0200, Iago Toral Quiroga wrote:
> > [...]
> > > At this point I'd like to hear suggestions for things we could try next
> > > to confirm whether this is a hardware problem or a driver problem, or,
> > > if we agree that this is enough evidence that this must be a hardware
> > > problem, how we can limit its impact, starting, probably, by rewriting
> > > the piglit test so that we don't alter its purpose but avoid the hang on
> > > gen6. We should also discuss if there is a way to work around this
> > > problem so that at least developers running into it (as unlikely as that
> > > may be) don't hang their systems.
> > > 
> > > I am going to be on holidays starting tomorrow and will have difficult
> > > and limited Internet access for the most part, but Samuel (in the CC)
> > > will be available next week to try any suggestions you may have.
> > 
> > As Iago said, I'm available for trying any suggestions you may have.
> > 
> > I'm wondering if you need more information about the issue or if I can
> > run more tests in order to confirm/discard this is a HW problem and the
> > next steps to follow.
> > 
> > Best regards,
> > 
> > Sam
> 
> I just came across an interesting looking errata...
> 
> From the Sandybridge PRM, Volume 2 Part 1, Section 5.5.1 "Partial Object Removal":
> 
> "An object is considered ‘partial’ if the last vertex of the primitive topology
>  is encountered (i.e., PrimEnd is set) before a complete set of vertices for
>  that object have been received. Given that only LINESTRIP and TRISTRIP primitive
>  types are subject to CLIP unit partial object removal, the only supported cases
>  of partial objects are 1-vertex LINESTRIPs and 1 or 2-vertex TRISTRIPs.
> 
>  [errata DevSNB]: Possible hang if final output from GS kernel is 2 vertex
>  triangle. If it is possible for the final output from GS kernel to be a 2
>  vertex triangle, then have the GS kernel always output an extra single vertex
>  triangle as the final output."
> 
> Do you think this could be related?  It's a SNB specific hang closely tied to triangle strips, which sounds promising, but the symptoms don't sound quite right either...
> 

As Iago reported, the issue is specific to glDrawElements(), while
glDrawArrays() is not affected.

If the errata was the source of the issue, I understand that it should
affect both rendering commands, am I wrong?

However it is interesting to know this SNB's errata because our GS
patches don't take into account that the final output from GS kernel
might be 2 vertex a triangle and that could produce another GPU hang.

Thanks!

Sam


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140827/116da781/attachment.sig>


More information about the mesa-dev mailing list