Improve Voodoo1 FIFO/CMDFIFO timing without affecting other 3dfx cards #6508
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.
Suggestion cannot be applied right now. Please check back later.
Summary
This change adjusts FIFO wake timing and CMDFIFO batching only for Voodoo1.
On fast emulated CPUs, some games (e.g., Final Racing) showed slow menu interaction when using a Voodoo1 card. Increasing batching and reducing wake frequency fixes this without affecting rendering or compatibility.
During testing, the same change applied to other cards (Voodoo2/Banshee/Voodoo3) could cause stalls in certain titles (for example Scream Rally 2 would freeze right when the race started). Because of that, the original behavior is restored for every card except Voodoo1.
No rendering logic or register behavior is modified here, only timing.
Files Changed
Code Changes
src/video/vid_voodoo_fifo.cVoodoo1 uses a longer delay between FIFO thread wakeups; other cards keep the original value:
src/video/vid_voodoo.cVoodoo1 batches more CMDFIFO writes before waking the thread.
Other cards keep the original < 20 threshold to avoid stalls:
Before / After (Final Racing, Voodoo1)
Before (slow UI):

After (normal speed):

Testing
Notes
voodoo->type == VOODOO_1