On Wed, Aug 4, 2010 at 11:01 PM, Zack Rusin <za...@vmware.com> wrote: > On Wednesday 04 August 2010 04:17:15 Chia-I Wu wrote: >> I've updated the geometry shader so that given a triangle with adjacency, 3 >> triangles will be emitted: >> >> - the triangle formed by the first edge and the first adjacent vertex >> - the triangle formed by the second edge and the second adjacent vertex >> - the triangle formed by the third edge and the third adjacent vertex >> >> and the color is decided by the respective adjacent vertices. >> >> The vertex array is updated to consist of 8 vertices (2 triangles), which >> layout just like the diagram in the D3D doc, except the diagram has 14 >> vertices (5 triangles). The color of the adjacent vertices for the first >> and second triangles are red and green respectively. >> >> With this setup, you can find the results of the running the demo with >> master and draw-decompose-2 branches, and with nVidia's driver on Windows. >> >> This says nothing about D3D triangle strip with adjacency, but it now seems >> to follow wat nVidia's OpenGL driver does. > > Nice job! That looks pretty good, I ported the example to D3D to see what it > does. It looks like at least the right vertices are being used. On my NVIDIA > linux setup it looks like D3D flips the verts in the second triangle (as we > expected). > Compare tristripadj8.png to what the GL version of my example does with > glDrawArrays(..., 0, 8) and tristripadj10.png to glDrawArrays(..., 0, 10). > Attached is the D3D example that I used (just change the Vertex data to the > data from my example to see it since right now it uses the data from yours and > that looks the same on d3d windows as it does on gl). It accepts "-reference" > flag which will use Windows reference rasterizer. I've uploaded the results, due to the size, to
http://people.freedesktop.org/~olv/tmp/tristripadj/ tristripadj6.png, tristripadj8.png, and tristripadj10.png are the results of running the original tri-adj.c with 6, 8, and 10 vertices. The vertices of ever other triangles are flipped. tristripadj-d3d-order.patch forces draw_decompose_tmp.h to use D3D decomposition rule. With it applied, the results are exactly the same as the D3D's. With GS, the order of the vertices of a primitive becomes significant. We can no longer permute the vertices to support flatshade_first (at least, not before GS runs). -- o...@lunarg.com _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev