VideoCommon: Treat invalid normal count as NormalTangentBinormal #11207
+13
−6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.

See https://bugs.dolphin-emu.org/issues/13070.
I hardware tested this using the
codcamp.dfffifolog from that issue, along with a version I hex-edited, using the hardware fifoplayer: codcamp.7z.zip. Note that the last object in this fifolog needs to be disabled to get rid of a white screen (and the one before it can be removed to disable bloom). Specifically, I edited object 476 on frame 0, at offsets 00175d49 and 00175d54. The default version uses XFMEM_VTXSPECS with Num normals: Invalid (3) and CP_VAT_REG_A with Normal elements: 3 (normal, tangent, binormal) (1), while my hex-edited version uses Num normals: Normal only (1) and Normal elements: 1 (normal) (0). (I had to hex-edit it so that I had working base versions, as changing two fields at once could result in hangs if a frame gets drawn when only one of them is changed).Here are my results (rows XFMEM_VTXSPECS, columns CP_VAT_REG_A):
The hardware fifoplayer didn't make it easy to test no normals enabled at all (since that would involve editing primitive data). I assume that it hangs if XFMEM_VTXSPECS isn't set to None, though.
I also confirmed that Dolphin is rendering the scene (particularly the reflections on the bag) correctly.