New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VideoCommon: Fix direct normal+tangent+binormal with index3 set #10808
VideoCommon: Fix direct normal+tangent+binormal with index3 set #10808
Conversation
|
I don't think there's any other games that uses this, unfortunately, not even the Rogue Squadron games. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested and verified to work on both Android and Desktop
88a71cb
to
01eb1f6
Compare
01eb1f6
to
1e52eb1
Compare
|
AArch64 LGTM other than above nits. |
7c9eb69
to
c723e99
Compare
c723e99
to
267bdf8
Compare
48359f0
to
7f20831
Compare
7f20831
to
ca44305
Compare
4bbfc40
to
5a87989
Compare
We have one that does a similar thing, but only to measure speed and uses indices. This one verifies accuracy (and uses the largest possible input size by using direct components).
This currently fails for direct with NormalIndex3 enabled (see https://bugs.dolphin-emu.org/issues/12952). The goal of this test is to be able to confidently say that that bug has been fixed.
Before, unaligned values would be silently ignored in most cases.
The source and destination offsets will always be less than 255, so we can get rid of a lot of the complexity by doing this.
This way it more closely matches VertexLoaderX64, and is in general easier to understand.
…Vertex This also means that both a register and a vertex are always specified, though right now if the register is scratch1_reg the offset is always 0.
5a87989
to
d80201a
Compare
|
#11058 (comment) looks more likely related to this PR. |
|
That does look like the assertion is being actually violated, so there probably was a bug beforehand that's only being exposed now, but without a stacktrace I can't tell where that number comes from. |
Will this do? |
|
I'll take on this issue. |
|
fwiw this PR seems to have broken nightly-generic buildbot https://dolphin.ci/#/builders/23 |
|
More accurately, AFAICT, this PR is missing a generic implementation of the fix it implemented (and added tests for). The newly broken tests just reflect the fact that generic is missing the bug fix. |
|
That's weird, as I locally tested it against the generic/non-JIT/software vertex loader, as it was initially not broken. It looks like what happened is that I tested via defining |
Fixes https://bugs.dolphin-emu.org/issues/12952. I haven't tested the ARM change at all other than verifying that it compiles (so it's probably completely broken), but I have tested the x64 change.