Emulator Issues #6230
closedIndex Generator recovery of missing functionality
0%
Description
this revision f16dcfe6f69c0cb8ba89ea6611157c8c2eab3dad
was all wrong.
the original code in the index generator was correct I spend almost a week investigating in the real hardware to find out the behavior when wrong number of vertices are send to determined primitives.
can I revert it to its original state, or could we use the primitive_restart branch to add the missing functionality?
Updated by Billiard26 over 11 years ago
Go ahead and revert it. :p
The comments made it sound like the code was all guesses. (not emulation of the real hardware like you say now)
And like I said in the commit message, I'm not seeing where video software does any of these things, maybe it's wrong, or maybe I am just dumb.
I can understand why we need to generate triangles for QUADS, but what purpose did the degenerate triangles serve?
Updated by Billiard26 over 11 years ago
Issue 6214 has been merged into this issue.
Updated by rodolfoosvaldobogado over 11 years ago
yes you are right they where guesses, because I don't have access to the design of the real rasterizer, but they where made using what was observed comparing the result of sending wrong number of vertices, as zww do in the opening screen, for the square and triangle list. to resume as observer in zww, the hardware when receiving the wrong number of vertices for the quad primitives, process the remaining vertices as triangles. For triangles I chose discard because I don't find any game that send a wrong number of vertices in a triangle list, but a understandable way could be process the remaining vertices as a strip.
Updated by degasus over 11 years ago
- Status changed from New to Accepted
This make sense for quad_lists also to render only 3 vertices as the first 3 vertices are a triangle. I'll fix this :-)
But the triangle_list implementation confuses me. I don't see how hardware could use them as strip. But if you've checked this on hardware, I'll also implement this.
And I don't want to see degenerated triangles again as they are defined to draw nothing both on d3d and ogl :-)
Updated by rodolfoosvaldobogado over 11 years ago
Yes that was my error. Uncomplete quad is better
El 09/04/2013 10:03, dolphin-emu@googlecode.com escribi�
Updated by degasus over 11 years ago
rodolfo: I'm not sure what you want to say with your #3 posting: Have you tested triangle_list with 1 or 2 vertices?
Updated by degasus over 11 years ago
Issue 6214 has been merged into this issue.
Updated by rodolfoosvaldobogado over 11 years ago
Sorry for the delay in the response.
I was trying to say is that I wasn't able to test the triangle list scenario because did not find any game that use it, so chose to discard the additional vertices.
Updated by degasus over 11 years ago
- Status changed from Accepted to Fixed
Original quad_list behavior is implemented in primitive_restart and hopefully merged soon. As everything else will be discarded, we can mark this issue as resolved :-)
Updated by rodolfoosvaldobogado over 11 years ago
Congratulations :).
Some bad news, I was testing primitive restart in dx9, as internet says, one of my amd cards support it, the other one and the NVidia card fails.
Also tested the insertion of degenerated triangles, immense drop of performance in dx9 in some games, so I recommend to keep the triangle path for the dx9 backend.