Project

General

Profile

Actions

Emulator Issues #10312

closed

VertexManagerBase.cpp:95 E[Video]: Too little remaining index values. Use 32-bit or reset them on flush. (non-fatal)

Added by ryanebola16 almost 7 years ago. Updated over 1 year ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% 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:
5.0-18171

Description

Game Name?

Super Smash Bros. Brawl

Game ID? (right click the game in the game list, properties, info tab)

RSBE01

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)

0187eb2591618c5fdbf1d38f0febef97 (edited ISO, works fine on both Dolphin and real Wii)

What's the problem? Describe what went wrong.

This warning appears whenever this custom stage is played on OGL, Vulkan, and DX11. See attached FIFO log (note, the "XFStructs.cpp:207 W[Video]: XF load exeeds address space: #### 1 bytes" message only appears on the FIFO log). This stage appears to function fine on a real Wii.

What steps will reproduce the problem?

Play on this custom stage

Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?
Reproduced in:
5.0-3967
5.0-11

What are your PC specifications? (CPU, GPU, Operating System, more)

Win 10 Pro x64
Intel Core i7-4702MQ CPU @2.20GHz
GeForce GT 750M
2x 8GB Hynix 1600MHz
GeForce Game Ready Driver 382.33


Files


Related issues 3 (0 open3 closed)

Related to Emulator - Emulator Issues #6135: Super Mario Sunshine Grass Broken by Vertex Loader CleanupFixed

Actions
Related to Emulator - Emulator Issues #13136: Vertex Explosion in Pocoyo RacingFixed

Actions
Related to Emulator - Emulator Issues #13453: Trauma Team: Skeleton bug (Demons & Death mission)Fixed

Actions
Actions #1

Updated by ryanebola16 about 4 years ago

Stage download link: http://forums.kc-mm.com/Gallery/BrawlView.php?Number=31626

I looked into this a little further. I'm certain the problem has something to do with structures2.mdl0

Exporting then re-importing the model via BrawlBox did not change the problem so it's likely unrelated to materials or shaders.

This model has a very large number of facepoints for a model imported into Brawl (80969). Perhaps that is relevant here?

Actions #2

Updated by ryanebola16 about 4 years ago

Removing some of the objects from the model made this problem go away. Now the question is does Dolphin rightfully complain about about the abnormally large model?

Actions #3

Updated by JMC4789 over 1 year ago

  • Status changed from New to Invalid

I'm assuming it would crash on console. Feel free to reopen if the broken model works on Wii.

Actions #4

Updated by JMC4789 over 1 year ago

  • Status changed from Invalid to Accepted

Oops, I didn't read.

Actions #5

Updated by pokechu22 over 1 year ago

Actions #6

Updated by pokechu22 over 1 year ago

This is entirely a dolphin error, and in fact the message is incorrect (we already do reset them on flush). All that's happening is that you're sending more than 0xffff vertices with the same configuration; dolphin likes to merge together groups of vertices with the same configuration because that's faster, but at some point a new batch needs to be started. That message indicates that a new batch should be started; I'm pretty sure it just predates the code that actually started a new batch (it was added for #6135 in this 2013 commit, and I think we start a new batch in this 2014 commit but I'm not 100% sure).

Actions #7

Updated by pokechu22 over 1 year ago

Actions #8

Updated by pokechu22 over 1 year ago

For reference, the grass in #6135 is rendered in 4 primitive commands, each containing 63000 vertices. The broken rendering of the grass was fixed in 3.5-1063 (and is present in 3.5-1062).

There was a regression in 4.0-699 which caused the "Too little remaining index values. Use 32-bit or reset them on flush." message to be spammed for the grass case; this did not happen in 4.0-692. More precisely, the regression happened in StreamBuffers-4.0-695 and did not exist in StreamBuffers-4.0-694. All that changed in that version was that Flush() no longer directly resets the index generator, but instead PrepareForAdditionalData() does it afterwards if a flush occurred, so the message is incorrectly shown. (I'm also a bit confused about the message saying "reset them on flush" as even in 3.5-1063 Flush() called ResetBuffer() which reset them.) Strangely this is not the version where this issue was introduced; I'm guessing something changed at some point that allowed the separate draws there to be merged together. But it's where the underlying issue came from.

For whatever reason I can't comment on #6135 (I think it uses a field that no longer exists), so I'm putting this here.

Actions #9

Updated by pokechu22 over 1 year ago

  • Status changed from Accepted to Fix pending
Actions #10

Updated by pokechu22 over 1 year ago

  • Status changed from Fix pending to Fixed
  • Fixed in set to 5.0-18171
Actions #11

Updated by pokechu22 3 months ago

Actions

Also available in: Atom PDF