softgpu: Refactor imm prim handling to support fog/color1 #16042
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.
This accurately handles what I've reproduced for immediate-mode primitives, stuffing them a bit later in the pipeline so they bypass vertex decode. There's still some ugliness for viewport (due to screenpos calculation after clipping), but it's not that terrible.
Ah, well, I'm not sure about the vertex Q, actually. Maybe texgen isn't right still...
The hardware renderers still don't support fog/color1, but I'm hoping this makes it easier for us to tell if some other game is using them unexpectedly. Anyway, I also want the software renderer to be a more accurate way to test graphics that might be used in PSP game patches.
This also means my imm fog test can be shown to pass and added to test.py (I think I forgot to ever push it...)
Also fixes a crash hardware renderers had if anything but rectangles were used in transform mode.
-[Unknown]