Give the software renderer some love! #186

Merged
alufolie91 merged 147 commits from softwarecrap into Saturn-Next 2025-07-01 15:21:48 +02:00
alufolie91 commented 2025-06-12 22:58:12 +02:00 (Migrated from github.com)

Massive fixup for the software renderer to make it an actual viable option

  • gets rid of static screensize buffers, they now get allocated when the resolution changes (this is also a prelim to get rid of the hardcoded video modes), MAXVID has both been raised to 8192 allowing for crazy high resolutions to work without issue
  • Converts a bunch of files to c++ and takes advantage of alot of c++ specifics (std::fill, lambdas and such)
  • Unglobalizes both drawspandata and drawcolumndata, so they´re handled alot safer
  • Optimizing hud drawing a little by inlining the different drawers (thx SRB2classic!)
  • ports over ALOT of fixes from RingRacers and SRB2Classic to fix alot of visual issues and crashes
  • Better sprite sorting against Portals and Fofs
  • Attempts to fix issues with sky drawing (like gacha cup, jelly cup etc), this needs some more testing! seems good enough for now, not perfect (see zigzag forest), but i dont feel like messing around with this anymore atm
  • Fixes issues with flat alignment, especially on slopes
  • Option to always cut cyan pixels on fof planes, toggable with "softwarecyancut", defaults to off for now
  • and finally! Span drawing is now multithreaded (port from Ring Racers) to give a massive performance boost!

This relies on the new makefiles, so that should be merged before

Massive fixup for the software renderer to make it an actual viable option - gets rid of static screensize buffers, they now get allocated when the resolution changes (this is also a prelim to get rid of the hardcoded video modes), MAXVID has both been raised to 8192 allowing for crazy high resolutions to work without issue - Converts a bunch of files to c++ and takes advantage of alot of c++ specifics (std::fill, lambdas and such) - Unglobalizes both drawspandata and drawcolumndata, so they´re handled alot safer - Optimizing hud drawing a little by inlining the different drawers (thx SRB2classic!) - ports over ALOT of fixes from RingRacers and SRB2Classic to fix alot of visual issues and crashes - Better sprite sorting against Portals and Fofs - Attempts to fix issues with sky drawing (like gacha cup, jelly cup etc), ~~this needs some more testing!~~ seems good enough for now, not perfect (see zigzag forest), but i dont feel like messing around with this anymore atm - Fixes issues with flat alignment, especially on slopes - Option to always cut cyan pixels on fof planes, toggable with "softwarecyancut", defaults to off for now - and finally! Span drawing is now multithreaded (port from Ring Racers) to give a massive performance boost! This relies on the new makefiles, so that should be merged before
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: saturn/SRB2Kart-Saturn#186