Project

General

Profile

Actions

Emulator Issues #6230

closed

Index Generator recovery of missing functionality

Added by rodolfoosvaldobogado over 11 years ago.

Status:
Fixed
Priority:
High
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

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?


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #6214: OpenGL Backend: Zelda: Wind Waker Sun rays missing on title screenDuplicate

Actions
Actions #1

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?

Actions #2

Updated by Billiard26 over 11 years ago

Issue 6214 has been merged into this issue.

Actions #3

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.

Actions #4

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 :-)

Actions #5

Updated by rodolfoosvaldobogado over 11 years ago

Yes that was my error. Uncomplete quad is better
El 09/04/2013 10:03, escribi�

Actions #6

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?

Actions #7

Updated by degasus over 11 years ago

Issue 6214 has been merged into this issue.

Actions #8

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.

Actions #9

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 :-)

Actions #10

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.

Actions

Also available in: Atom PDF