Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert TEV alpha lerp change and special-case alpha=1 in blending #10394

Merged
merged 2 commits into from Feb 11, 2022

Conversation

Pokechu22
Copy link
Contributor

Fixes https://bugs.dolphin-emu.org/issues/11909, partially by reverting #4514. I still need to do further testing here; I'm fairly sure the first commit is correct (I was able to confirm that an alpha value of 1 is being generated by both Fortune Street and Mario Kart Wii), but am less sure about the second one.

@Pokechu22
Copy link
Contributor Author

JMC mentioned that bk-tev improved, and I can confirm that (the filename, batentevlerp.dff, also references the original PR, so this isn't too much of a surprise).

Notes

In that, they have an object (1133) with an alpha value of 1, which is used to mask off some things to draw by updating the depth buffer for everything that shouldn't be drawn. In this case, they actually do use a texture with alpha in it:

BKTest

Here's that same texture with the alpha channel removed (it's an I4 texture, where the same value goes in all color channels (including alpha), but alpha makes it harder to look at here; just understand that black indicates transparent and white indicates not transparent):

BKTest2

Here's the old depth buffer (using values of .99-1 in renderdoc):

BKDepthOld

And here's the new depth buffer, where things work properly:

BKDepthNew

Furthermore, here's an image from real hardware, via the hardware fifoplayer:

3_y0_x0

Here's what Dolphin used to look like:

1_y0_x0

And here's Dolphin's new result:

1_y0_x0

It matches pretty closely, though real hardware has some dithering that Dolphin doesn't have; I don't know what's going on with that. I noticed that with Mario Kart Wii too, but haven't investigated further.

One other thing is that the mesa fifoci instance had white lines, but those are gone now; Baten Kaitos seems to be using the alpha channel in the EFB for similar effects elsewhere in rendering, and I guess mesa handled that weirdly? I don't know why it's fixed, and I don't know why only mesa was affected.

Here's the EFB with alpha enabled, via renderdoc (the hardware fifoplayer doesn't include alpha, at least not with how I'm generating the images):

BKColorAlpha

@JMC47
Copy link
Contributor

JMC47 commented Jan 28, 2022

So, This is an improvement in all of our known cases then.

@Pokechu22 Pokechu22 force-pushed the alpha-1-blend branch 2 times, most recently from fbb51b1 to 2194fa9 Compare January 28, 2022 05:59
@Pokechu22 Pokechu22 changed the title Adjust blending behavior (fix menus in Mario Kart Wii) Revert TEV alpha lerp change and special-case alpha=1 in blending Jan 28, 2022
@Pokechu22
Copy link
Contributor Author

For reviewing purposes, here's FifoCI differences for the first commit and the second commit, in addition to combined differences for both. I haven't had time to go through everything, though.

@Pokechu22 Pokechu22 marked this pull request as ready for review January 28, 2022 06:59
@Pokechu22
Copy link
Contributor Author

Pokechu22 commented Jan 28, 2022

Here are the interesting fifoci diffs (this took a while to prepare). bk-tev and mkw-flags are fixed by this, and fortune-street-white-box does not regress. jb-shadow also has something invisible happen in it that should be investigated further, and a few lighting/transparency effects seem to have slightly changed. Mesa also has a problem that I'll need to investigate further, though this problem doesn't exist in the combined version; this only applies to llvmpipe (the software renderer for mesa) but it still should be reported to them.

First commit:

Fifolog Mesa Software Radeon Radeon Uber Notes
bk-tev Result Result Result Result Mesa still has issues
burnout2-vehicletextures Result Result Result Result Minor
chibi-robo-fastdepth Result No diff No diff No diff Mesa broken
ea-pink Result Result Result Result Minor
ed-updated Result No diff No diff No diff Mesa broken
fortune-street-white-box Result No diff Result Result Regresses
goldeneye-depth No diff Result No diff No diff Minor, only noticeable with SW (exists in all)
gormiti Result No diff Result Result Minor, only noted for later
jb-shadow Broken Result Result Result Invisible
luigi-shadows Result No diff No diff No diff Mesa broken
metroid-visor Result No diff No diff No diff Mesa broken
mkw-flags Result Result Result Result
mp2-scanner Result Result Result Result Mesa broken
mp3-bloom Result Result Result Result
nfsu-reflections Result Result Result Result Windshield
rs2-bumpmapping Result No diff No diff No diff Mesa broken
rs2-glass Result No diff No diff No diff Mesa broken
rs2-skybox Result No diff No diff No diff Mesa both broken and fixed
rs2-zfreeze Result No diff No diff No diff Mesa broken
sf-assault-flashing Result No diff No diff No diff Mesa broken
sms-gc Result No diff No diff No diff Mesa broken
sms-water Result No diff No diff No diff Mesa broken
sonic-riders-blur Result No diff No diff No diff Mesa broken
tos-invis-char Result No diff No diff No diff Mesa broken
tsp3-pinkgrass Result No diff No diff No diff Mesa broken

Second commit:

Fifolog Mesa Software Radeon Radeon Uber Notes
bk-tev Result Result Result Result Mesa fix + residuals
chibi-robo-fastdepth Result No diff No diff No diff Mesa fixed
ed-updated Result No diff No diff No diff Mesa fixed
fortune-street-white-box Result No diff Result Result Regression fixed
gormiti Result No diff Result Result Now all black
jb-shadow Broken No diff Result Result Residuals?
luigi-shadows Result No diff No diff No diff Mesa fixed
metroid-visor Result No diff No diff No diff Mesa fixed
mkw-flags Result Result Result Result Residuals
mp2-scanner Result No diff No diff No diff Mesa fixed
mp3-bloom Result No diff Result Result
rs2-bumpmapping Result No diff No diff No diff Mesa fixed
rs2-glass Result No diff No diff No diff Mesa fixed
rs2-skybox Result No diff No diff No diff Mesa fixed without regressing
rs2-zfreeze Result No diff No diff No diff Mesa fixed
sf-assault-flashing Result No diff No diff No diff Mesa fixed
sms-gc Result No diff No diff No diff Mesa fixed
sms-water Result No diff No diff No diff Mesa fixed
sonic-riders-blur Result No diff No diff No diff Mesa fixed
tos-invis-char Result No diff No diff No diff Mesa fixed
tsp3-pinkgrass Result No diff No diff No diff Mesa fixed

Combined diff:

Fifolog Mesa Software Radeon Radeon Uber Notes
bk-tev Result Result Result Result Fixed
burnout2-vehicletextures Result Result Result Result Minor
ea-pink Result Result Result Result Minor
fortune-street-white-box No diff No diff No diff No diff Does not regress
goldeneye-depth No diff Result No diff No diff Minor, only noticeable with SW (exists in all)
gormiti Result No diff Result Result Now solid black
jb-shadow Broken Result Result Result Caused by almost-invisible fog particle effects with low transparency
mkw-flags Result Result Result Result Fixed
mp2-scanner Result Result Result Result
mp3-bloom Result Result Result Result
nfsu-reflections Result Result Result Result Windshield
rs2-skybox Result No diff No diff No diff Frame 1 fixed on Mesa

@iwubcode
Copy link
Contributor

@Pokechu22 - is this ready to go? You mention a few investigations. Are those going to happen in a different PR?

@Pokechu22
Copy link
Contributor Author

I looked into the bond thing, and it seems like it just draws some fog/snow particle effects that are fairly transparent. The mesa issue isn't something that will be handled in a PR here; I just need to look into it and report it to them (in case it affects other stuff). So, this PR is ready for review (though it's not one that needs to be merged this month).

I still need to investigate how blending works further, as well, but for the sake of this PR the second hacky commit is good enough (once blending is understood better, it will be easy to replace it in a new PR).

It doesn't make sense for alpha to add the bias ONLY when dividing by 2, while color doesn't apply the bias for divide by 2 only; hardware testing indicates that alpha should have the bias.

This fixes the menus in Mario Kart Wii (https://bugs.dolphin-emu.org/issues/11909) but reintroduces the white rectangle in Fortune Street.

This reverts commit 5aaa514 (and several other matching changes elsewhere).
This removes the white box in fortune street again, without causing Mario Kart Wii to regress.
@dolphin-emu-bot
Copy link
Contributor

FifoCI detected that this change impacts graphical rendering. Here are the behavior differences detected by the system:

  • ab11-homebrew on ogl-lin-mesa: diff
  • aeon-charge-attack on ogl-lin-mesa: diff
  • bk-tev on ogl-lin-mesa: diff
  • burnout2-vehicletextures on ogl-lin-mesa: diff
  • chibi-robo-fastdepth on ogl-lin-mesa: diff
  • chibi-robo-zfighting on ogl-lin-mesa: diff
  • custom-brawl-char on ogl-lin-mesa: diff
  • dbz-depth on ogl-lin-mesa: diff
  • djfny-menu on ogl-lin-mesa: diff
  • djhero2-blend on ogl-lin-mesa: diff
  • DKCR-Char on ogl-lin-mesa: diff
  • DKCR-fast-depth on ogl-lin-mesa: diff
  • ea-pink on ogl-lin-mesa: diff
  • ed-updated on ogl-lin-mesa: diff
  • et-vid on ogl-lin-mesa: diff
  • find-mii on ogl-lin-mesa: diff
  • fishing-resort-map on ogl-lin-mesa: diff
  • fortune-street on ogl-lin-mesa: diff
  • fortune-street-fog on ogl-lin-mesa: diff
  • fortune-street-white-box on ogl-lin-mesa: diff
  • fsa-layers on ogl-lin-mesa: diff
  • f-zero-rain on ogl-lin-mesa: diff
  • goldeneye-depth on ogl-lin-mesa: diff
  • gormiti on ogl-lin-mesa: diff
  • inverted-depth-range on ogl-lin-mesa: diff
  • jb-shadow on ogl-lin-mesa: diff
  • jd2-fmv on ogl-lin-mesa: diff
  • jj-awae-mirrored on ogl-lin-mesa: diff
  • kirby-logicop on ogl-lin-mesa: diff
  • kirby-shadows on ogl-lin-mesa: diff
  • last-story-shadows on ogl-lin-mesa: diff
  • lego-star-wars-crane-shadow on ogl-lin-mesa: diff
  • lm-mario-portrait on ogl-lin-mesa: diff
  • luigi-shadows on ogl-lin-mesa: diff
  • mario-baseball-shadows on ogl-lin-mesa: diff
  • mario-golf-oob on ogl-lin-mesa: diff
  • mario-sluggers-bar on ogl-lin-mesa: diff
  • mario-tennis-menu on ogl-lin-mesa: diff
  • MaS-LOG-wiimote on ogl-lin-mesa: diff
  • megaman-heat on ogl-lin-mesa: diff
  • melee-depth on ogl-lin-mesa: diff
  • melee-lighting on ogl-lin-mesa: diff
  • metroid-visor on ogl-lin-mesa: diff
  • mii-channel on ogl-lin-mesa: diff
  • milotic-texture on ogl-lin-mesa: diff
  • mini-ninjas on ogl-lin-mesa: diff
  • mkdd-babypark on ogl-lin-mesa: diff
  • mkdd-efb on ogl-lin-mesa: diff
  • mkw-bridge on ogl-lin-mesa: diff
  • mkw-flags on ogl-lin-mesa: diff
  • mkwii-bluebox on ogl-lin-mesa: diff
  • monkeyball-fuse on ogl-lin-mesa: diff
  • mp2-scanner on ogl-lin-mesa: diff
  • mp3-bloom on ogl-lin-mesa: diff
  • mp4-vertexcache on ogl-lin-mesa: diff
  • mp7-text on ogl-lin-mesa: diff
  • mp8-widescreen on ogl-lin-mesa: diff
  • mtennis-zfreeze on ogl-lin-mesa: diff
  • my-word-coach on ogl-lin-mesa: diff
  • nddemo-lighting on ogl-lin-mesa: diff
  • nfsu-purplerect on ogl-lin-mesa: diff
  • nfsu-reflections on ogl-lin-mesa: diff
  • nhl-slap on ogl-lin-mesa: diff
  • nintendo-channel on ogl-lin-mesa: diff
  • nsmbw-coins on ogl-lin-mesa: diff
  • nsmbw-intro on ogl-lin-mesa: diff
  • pbr-sfx on ogl-lin-mesa: diff
  • pm-hc-jp on ogl-lin-mesa: diff
  • pw-black-bars on ogl-lin-mesa: diff
  • rs2-bumpmapping on ogl-lin-mesa: diff
  • rs2-glass on ogl-lin-mesa: diff
  • rs2-skybox on ogl-lin-mesa: diff
  • rs2-zfreeze on ogl-lin-mesa: diff
  • rs3-bumpmapping on ogl-lin-mesa: diff
  • rs3-skybox2 on ogl-lin-mesa: diff
  • sadx-ui on ogl-lin-mesa: diff
  • sfa-shadows on ogl-lin-mesa: diff
  • sf-assault-flashing on ogl-lin-mesa: diff
  • simpsons-game on ogl-lin-mesa: diff
  • smb-mirror on ogl-lin-mesa: diff
  • smg2-fog on ogl-lin-mesa: diff
  • smg-marioeyes on ogl-lin-mesa: diff
  • smg-mmg on ogl-lin-mesa: diff
  • smg-roar on ogl-lin-mesa: diff
  • sms-bubbles on ogl-lin-mesa: diff
  • sms-gc on ogl-lin-mesa: diff
  • sms-water on ogl-lin-mesa: diff
  • soa-black on ogl-lin-mesa: diff
  • soniccolors-mm on ogl-lin-mesa: diff
  • sonic-riders-blur on ogl-lin-mesa: diff
  • sonic-riders-zg-4p on ogl-lin-mesa: diff
  • sonicriderszg-gb on ogl-lin-mesa: diff
  • spyro-bloom on ogl-lin-mesa: diff
  • spyro-depth on ogl-lin-mesa: diff
  • ssbb-mod-lloyd on ogl-lin-mesa: diff
  • ssbm-pointsize on ogl-lin-mesa: diff
  • ss-map on ogl-lin-mesa: diff
  • super-sluggers-white-out on ogl-lin-mesa: diff
  • sw3-dt on ogl-lin-mesa: diff
  • thps3-earlyz on ogl-lin-mesa: diff
  • thps4-shadow on ogl-lin-mesa: diff
  • tla-menu on ogl-lin-mesa: diff
  • tos-invis-char on ogl-lin-mesa: diff
  • tp-skin on ogl-lin-mesa: diff
  • tsp3-pinkgrass on ogl-lin-mesa: diff
  • vegas-party-depth on ogl-lin-mesa: diff
  • viewitful-joe-distortion on ogl-lin-mesa: diff
  • xenoblade-menu on ogl-lin-mesa: diff
  • ztp-grass on ogl-lin-mesa: diff
  • zww-armos on ogl-lin-mesa: diff
  • zww-water on ogl-lin-mesa: diff
  • zww-waves on ogl-lin-mesa: diff
  • ab11-homebrew on sw-lin-mesa: diff
  • aeon-charge-attack on sw-lin-mesa: diff
  • bk-tev on sw-lin-mesa: diff
  • burnout2-vehicletextures on sw-lin-mesa: diff
  • chibi-robo-fastdepth on sw-lin-mesa: diff
  • chibi-robo-zfighting on sw-lin-mesa: diff
  • custom-brawl-char on sw-lin-mesa: diff
  • dbz-depth on sw-lin-mesa: diff
  • djfny-menu on sw-lin-mesa: diff
  • djhero2-blend on sw-lin-mesa: diff
  • DKCR-Char on sw-lin-mesa: diff
  • DKCR-fast-depth on sw-lin-mesa: diff
  • ea-pink on sw-lin-mesa: diff
  • ed-updated on sw-lin-mesa: diff
  • et-vid on sw-lin-mesa: diff
  • find-mii on sw-lin-mesa: diff
  • fishing-resort-map on sw-lin-mesa: diff
  • fortune-street on sw-lin-mesa: diff
  • fortune-street-fog on sw-lin-mesa: diff
  • fortune-street-white-box on sw-lin-mesa: diff
  • fsa-layers on sw-lin-mesa: diff
  • f-zero-rain on sw-lin-mesa: diff
  • goldeneye-depth on sw-lin-mesa: diff
  • inverted-depth-range on sw-lin-mesa: diff
  • jb-shadow on sw-lin-mesa: diff
  • jd2-fmv on sw-lin-mesa: diff
  • jj-awae-mirrored on sw-lin-mesa: diff
  • kirby-logicop on sw-lin-mesa: diff
  • kirby-shadows on sw-lin-mesa: diff
  • last-story-shadows on sw-lin-mesa: diff
  • lego-star-wars-crane-shadow on sw-lin-mesa: diff
  • lm-mario-portrait on sw-lin-mesa: diff
  • luigi-shadows on sw-lin-mesa: diff
  • mario-baseball-shadows on sw-lin-mesa: diff
  • mario-golf-oob on sw-lin-mesa: diff
  • mario-sluggers-bar on sw-lin-mesa: diff
  • mario-tennis-menu on sw-lin-mesa: diff
  • MaS-LOG-wiimote on sw-lin-mesa: diff
  • megaman-heat on sw-lin-mesa: diff
  • melee-depth on sw-lin-mesa: diff
  • melee-lighting on sw-lin-mesa: diff
  • metroid-visor on sw-lin-mesa: diff
  • mii-channel on sw-lin-mesa: diff
  • milotic-texture on sw-lin-mesa: diff
  • mini-ninjas on sw-lin-mesa: diff
  • mkdd-babypark on sw-lin-mesa: diff
  • mkdd-efb on sw-lin-mesa: diff
  • mkw-bridge on sw-lin-mesa: diff
  • mkw-flags on sw-lin-mesa: diff
  • mkwii-bluebox on sw-lin-mesa: diff
  • monkeyball-fuse on sw-lin-mesa: diff
  • mp2-scanner on sw-lin-mesa: diff
  • mp3-bloom on sw-lin-mesa: diff
  • mp4-vertexcache on sw-lin-mesa: diff
  • mp7-text on sw-lin-mesa: diff
  • mp8-widescreen on sw-lin-mesa: diff
  • mtennis-zfreeze on sw-lin-mesa: diff
  • my-word-coach on sw-lin-mesa: diff
  • nddemo-lighting on sw-lin-mesa: diff
  • nfsu-purplerect on sw-lin-mesa: diff
  • nfsu-reflections on sw-lin-mesa: diff
  • nhl-slap on sw-lin-mesa: diff
  • nintendo-channel on sw-lin-mesa: diff
  • nsmbw-coins on sw-lin-mesa: diff
  • nsmbw-intro on sw-lin-mesa: diff
  • pbr-sfx on sw-lin-mesa: diff
  • pm-hc-jp on sw-lin-mesa: diff
  • pw-black-bars on sw-lin-mesa: diff
  • rs2-bumpmapping on sw-lin-mesa: diff
  • rs2-glass on sw-lin-mesa: diff
  • rs2-skybox on sw-lin-mesa: diff
  • rs2-zfreeze on sw-lin-mesa: diff
  • rs3-bumpmapping on sw-lin-mesa: diff
  • rs3-skybox2 on sw-lin-mesa: diff
  • sadx-ui on sw-lin-mesa: diff
  • sfa-shadows on sw-lin-mesa: diff
  • sf-assault-flashing on sw-lin-mesa: diff
  • simpsons-game on sw-lin-mesa: diff
  • smb-mirror on sw-lin-mesa: diff
  • smg2-fog on sw-lin-mesa: diff
  • smg-marioeyes on sw-lin-mesa: diff
  • smg-mmg on sw-lin-mesa: diff
  • smg-roar on sw-lin-mesa: diff
  • sms-bubbles on sw-lin-mesa: diff
  • sms-gc on sw-lin-mesa: diff
  • sms-water on sw-lin-mesa: diff
  • soa-black on sw-lin-mesa: diff
  • soniccolors-mm on sw-lin-mesa: diff
  • sonic-riders-blur on sw-lin-mesa: diff
  • sonic-riders-zg-4p on sw-lin-mesa: diff
  • sonicriderszg-gb on sw-lin-mesa: diff
  • spyro-bloom on sw-lin-mesa: diff
  • spyro-depth on sw-lin-mesa: diff
  • ssbb-mod-lloyd on sw-lin-mesa: diff
  • ssbm-pointsize on sw-lin-mesa: diff
  • ss-map on sw-lin-mesa: diff
  • super-sluggers-white-out on sw-lin-mesa: diff
  • sw3-dt on sw-lin-mesa: diff
  • thps3-earlyz on sw-lin-mesa: diff
  • thps4-shadow on sw-lin-mesa: diff
  • tla-menu on sw-lin-mesa: diff
  • tos-invis-char on sw-lin-mesa: diff
  • tp-skin on sw-lin-mesa: diff
  • tsp3-pinkgrass on sw-lin-mesa: diff
  • vegas-party-depth on sw-lin-mesa: diff
  • viewitful-joe-distortion on sw-lin-mesa: diff
  • xenoblade-menu on sw-lin-mesa: diff
  • ztp-grass on sw-lin-mesa: diff
  • zww-armos on sw-lin-mesa: diff
  • zww-water on sw-lin-mesa: diff
  • zww-waves on sw-lin-mesa: diff
  • ab11-homebrew on ogl-lin-radeon: diff
  • aeon-charge-attack on ogl-lin-radeon: diff
  • bk-tev on ogl-lin-radeon: diff
  • burnout2-vehicletextures on ogl-lin-radeon: diff
  • chibi-robo-fastdepth on ogl-lin-radeon: diff
  • chibi-robo-zfighting on ogl-lin-radeon: diff
  • custom-brawl-char on ogl-lin-radeon: diff
  • dbz-depth on ogl-lin-radeon: diff
  • djfny-menu on ogl-lin-radeon: diff
  • djhero2-blend on ogl-lin-radeon: diff
  • DKCR-Char on ogl-lin-radeon: diff
  • DKCR-fast-depth on ogl-lin-radeon: diff
  • ea-pink on ogl-lin-radeon: diff
  • ed-updated on ogl-lin-radeon: diff
  • et-vid on ogl-lin-radeon: diff
  • find-mii on ogl-lin-radeon: diff
  • fishing-resort-map on ogl-lin-radeon: diff
  • fortune-street on ogl-lin-radeon: diff
  • fortune-street-fog on ogl-lin-radeon: diff
  • fortune-street-white-box on ogl-lin-radeon: diff
  • fsa-layers on ogl-lin-radeon: diff
  • f-zero-rain on ogl-lin-radeon: diff
  • goldeneye-depth on ogl-lin-radeon: diff
  • gormiti on ogl-lin-radeon: diff
  • inverted-depth-range on ogl-lin-radeon: diff
  • jb-shadow on ogl-lin-radeon: diff
  • jd2-fmv on ogl-lin-radeon: diff
  • jj-awae-mirrored on ogl-lin-radeon: diff
  • kirby-logicop on ogl-lin-radeon: diff
  • kirby-shadows on ogl-lin-radeon: diff
  • last-story-shadows on ogl-lin-radeon: diff
  • lego-star-wars-crane-shadow on ogl-lin-radeon: diff
  • lm-mario-portrait on ogl-lin-radeon: diff
  • luigi-shadows on ogl-lin-radeon: diff
  • mario-baseball-shadows on ogl-lin-radeon: diff
  • mario-golf-oob on ogl-lin-radeon: diff
  • mario-sluggers-bar on ogl-lin-radeon: diff
  • mario-tennis-menu on ogl-lin-radeon: diff
  • MaS-LOG-wiimote on ogl-lin-radeon: diff
  • megaman-heat on ogl-lin-radeon: diff
  • melee-depth on ogl-lin-radeon: diff
  • melee-lighting on ogl-lin-radeon: diff
  • metroid-visor on ogl-lin-radeon: diff
  • mii-channel on ogl-lin-radeon: diff
  • milotic-texture on ogl-lin-radeon: diff
  • mini-ninjas on ogl-lin-radeon: diff
  • mkdd-babypark on ogl-lin-radeon: diff
  • mkdd-efb on ogl-lin-radeon: diff
  • mkw-bridge on ogl-lin-radeon: diff
  • mkw-flags on ogl-lin-radeon: diff
  • mkwii-bluebox on ogl-lin-radeon: diff
  • monkeyball-fuse on ogl-lin-radeon: diff
  • mp2-scanner on ogl-lin-radeon: diff
  • mp3-bloom on ogl-lin-radeon: diff
  • mp4-vertexcache on ogl-lin-radeon: diff
  • mp7-text on ogl-lin-radeon: diff
  • mp8-widescreen on ogl-lin-radeon: diff
  • mtennis-zfreeze on ogl-lin-radeon: diff
  • my-word-coach on ogl-lin-radeon: diff
  • nfsu-purplerect on ogl-lin-radeon: diff
  • nfsu-reflections on ogl-lin-radeon: diff
  • nhl-slap on ogl-lin-radeon: diff
  • nintendo-channel on ogl-lin-radeon: diff
  • nsmbw-coins on ogl-lin-radeon: diff
  • nsmbw-intro on ogl-lin-radeon: diff
  • pbr-sfx on ogl-lin-radeon: diff
  • pm-hc-jp on ogl-lin-radeon: diff
  • pw-black-bars on ogl-lin-radeon: diff
  • rs2-bumpmapping on ogl-lin-radeon: diff
  • rs2-glass on ogl-lin-radeon: diff
  • rs2-skybox on ogl-lin-radeon: diff
  • rs2-zfreeze on ogl-lin-radeon: diff
  • rs3-bumpmapping on ogl-lin-radeon: diff
  • rs3-skybox2 on ogl-lin-radeon: diff
  • sadx-ui on ogl-lin-radeon: diff
  • sfa-shadows on ogl-lin-radeon: diff
  • sf-assault-flashing on ogl-lin-radeon: diff
  • simpsons-game on ogl-lin-radeon: diff
  • smb-mirror on ogl-lin-radeon: diff
  • smg2-fog on ogl-lin-radeon: diff
  • smg-marioeyes on ogl-lin-radeon: diff
  • smg-mmg on ogl-lin-radeon: diff
  • smg-roar on ogl-lin-radeon: diff
  • sms-bubbles on ogl-lin-radeon: diff
  • sms-gc on ogl-lin-radeon: diff
  • sms-water on ogl-lin-radeon: diff
  • soa-black on ogl-lin-radeon: diff
  • soniccolors-mm on ogl-lin-radeon: diff
  • sonic-riders-blur on ogl-lin-radeon: diff
  • sonic-riders-zg-4p on ogl-lin-radeon: diff
  • sonicriderszg-gb on ogl-lin-radeon: diff
  • spyro-bloom on ogl-lin-radeon: diff
  • spyro-depth on ogl-lin-radeon: diff
  • ssbb-mod-lloyd on ogl-lin-radeon: diff
  • ssbm-pointsize on ogl-lin-radeon: diff
  • ss-map on ogl-lin-radeon: diff
  • super-sluggers-white-out on ogl-lin-radeon: diff
  • sw3-dt on ogl-lin-radeon: diff
  • thps3-earlyz on ogl-lin-radeon: diff
  • thps4-shadow on ogl-lin-radeon: diff
  • tla-menu on ogl-lin-radeon: diff
  • tos-invis-char on ogl-lin-radeon: diff
  • tp-skin on ogl-lin-radeon: diff
  • tsp3-pinkgrass on ogl-lin-radeon: diff
  • vegas-party-depth on ogl-lin-radeon: diff
  • viewitful-joe-distortion on ogl-lin-radeon: diff
  • xenoblade-menu on ogl-lin-radeon: diff
  • ztp-grass on ogl-lin-radeon: diff
  • zww-armos on ogl-lin-radeon: diff
  • zww-water on ogl-lin-radeon: diff
  • zww-waves on ogl-lin-radeon: diff
  • ab11-homebrew on uberogl-lin-radeon: diff
  • aeon-charge-attack on uberogl-lin-radeon: diff
  • bk-tev on uberogl-lin-radeon: diff
  • burnout2-vehicletextures on uberogl-lin-radeon: diff
  • chibi-robo-fastdepth on uberogl-lin-radeon: diff
  • chibi-robo-zfighting on uberogl-lin-radeon: diff
  • custom-brawl-char on uberogl-lin-radeon: diff
  • dbz-depth on uberogl-lin-radeon: diff
  • djfny-menu on uberogl-lin-radeon: diff
  • djhero2-blend on uberogl-lin-radeon: diff
  • DKCR-Char on uberogl-lin-radeon: diff
  • DKCR-fast-depth on uberogl-lin-radeon: diff
  • ea-pink on uberogl-lin-radeon: diff
  • ed-updated on uberogl-lin-radeon: diff
  • et-vid on uberogl-lin-radeon: diff
  • find-mii on uberogl-lin-radeon: diff
  • fishing-resort-map on uberogl-lin-radeon: diff
  • fortune-street on uberogl-lin-radeon: diff
  • fortune-street-fog on uberogl-lin-radeon: diff
  • fortune-street-white-box on uberogl-lin-radeon: diff
  • fsa-layers on uberogl-lin-radeon: diff
  • f-zero-rain on uberogl-lin-radeon: diff
  • goldeneye-depth on uberogl-lin-radeon: diff
  • gormiti on uberogl-lin-radeon: diff
  • inverted-depth-range on uberogl-lin-radeon: diff
  • jb-shadow on uberogl-lin-radeon: diff
  • jd2-fmv on uberogl-lin-radeon: diff
  • jj-awae-mirrored on uberogl-lin-radeon: diff
  • kirby-logicop on uberogl-lin-radeon: diff
  • kirby-shadows on uberogl-lin-radeon: diff
  • last-story-shadows on uberogl-lin-radeon: diff
  • lego-star-wars-crane-shadow on uberogl-lin-radeon: diff
  • lm-mario-portrait on uberogl-lin-radeon: diff
  • luigi-shadows on uberogl-lin-radeon: diff
  • mario-baseball-shadows on uberogl-lin-radeon: diff
  • mario-golf-oob on uberogl-lin-radeon: diff
  • mario-sluggers-bar on uberogl-lin-radeon: diff
  • mario-tennis-menu on uberogl-lin-radeon: diff
  • MaS-LOG-wiimote on uberogl-lin-radeon: diff
  • megaman-heat on uberogl-lin-radeon: diff
  • melee-depth on uberogl-lin-radeon: diff
  • melee-lighting on uberogl-lin-radeon: diff
  • metroid-visor on uberogl-lin-radeon: diff
  • mii-channel on uberogl-lin-radeon: diff
  • milotic-texture on uberogl-lin-radeon: diff
  • mini-ninjas on uberogl-lin-radeon: diff
  • mkdd-babypark on uberogl-lin-radeon: diff
  • mkdd-efb on uberogl-lin-radeon: diff
  • mkw-bridge on uberogl-lin-radeon: diff
  • mkw-flags on uberogl-lin-radeon: diff
  • mkwii-bluebox on uberogl-lin-radeon: diff
  • monkeyball-fuse on uberogl-lin-radeon: diff
  • mp2-scanner on uberogl-lin-radeon: diff
  • mp3-bloom on uberogl-lin-radeon: diff
  • mp4-vertexcache on uberogl-lin-radeon: diff
  • mp7-text on uberogl-lin-radeon: diff
  • mp8-widescreen on uberogl-lin-radeon: diff
  • mtennis-zfreeze on uberogl-lin-radeon: diff
  • my-word-coach on uberogl-lin-radeon: diff
  • nfsu-purplerect on uberogl-lin-radeon: diff
  • nfsu-reflections on uberogl-lin-radeon: diff
  • nhl-slap on uberogl-lin-radeon: diff
  • nintendo-channel on uberogl-lin-radeon: diff
  • nsmbw-coins on uberogl-lin-radeon: diff
  • nsmbw-intro on uberogl-lin-radeon: diff
  • pbr-sfx on uberogl-lin-radeon: diff
  • pm-hc-jp on uberogl-lin-radeon: diff
  • pw-black-bars on uberogl-lin-radeon: diff
  • rs2-bumpmapping on uberogl-lin-radeon: diff
  • rs2-glass on uberogl-lin-radeon: diff
  • rs2-skybox on uberogl-lin-radeon: diff
  • rs2-zfreeze on uberogl-lin-radeon: diff
  • rs3-bumpmapping on uberogl-lin-radeon: diff
  • rs3-skybox2 on uberogl-lin-radeon: diff
  • sadx-ui on uberogl-lin-radeon: diff
  • sfa-shadows on uberogl-lin-radeon: diff
  • sf-assault-flashing on uberogl-lin-radeon: diff
  • simpsons-game on uberogl-lin-radeon: diff
  • smb-mirror on uberogl-lin-radeon: diff
  • smg2-fog on uberogl-lin-radeon: diff
  • smg-marioeyes on uberogl-lin-radeon: diff
  • smg-mmg on uberogl-lin-radeon: diff
  • smg-roar on uberogl-lin-radeon: diff
  • sms-bubbles on uberogl-lin-radeon: diff
  • sms-gc on uberogl-lin-radeon: diff
  • sms-water on uberogl-lin-radeon: diff
  • soa-black on uberogl-lin-radeon: diff
  • soniccolors-mm on uberogl-lin-radeon: diff
  • sonic-riders-blur on uberogl-lin-radeon: diff
  • sonic-riders-zg-4p on uberogl-lin-radeon: diff
  • sonicriderszg-gb on uberogl-lin-radeon: diff
  • spyro-bloom on uberogl-lin-radeon: diff
  • spyro-depth on uberogl-lin-radeon: diff
  • ssbb-mod-lloyd on uberogl-lin-radeon: diff
  • ssbm-pointsize on uberogl-lin-radeon: diff
  • ss-map on uberogl-lin-radeon: diff
  • super-sluggers-white-out on uberogl-lin-radeon: diff
  • sw3-dt on uberogl-lin-radeon: diff
  • thps3-earlyz on uberogl-lin-radeon: diff
  • thps4-shadow on uberogl-lin-radeon: diff
  • tla-menu on uberogl-lin-radeon: diff
  • tos-invis-char on uberogl-lin-radeon: diff
  • tp-skin on uberogl-lin-radeon: diff
  • tsp3-pinkgrass on uberogl-lin-radeon: diff
  • vegas-party-depth on uberogl-lin-radeon: diff
  • viewitful-joe-distortion on uberogl-lin-radeon: diff
  • xenoblade-menu on uberogl-lin-radeon: diff
  • ztp-grass on uberogl-lin-radeon: diff
  • zww-armos on uberogl-lin-radeon: diff
  • zww-water on uberogl-lin-radeon: diff
  • zww-waves on uberogl-lin-radeon: diff

automated-fifoci-reporter

@Pokechu22
Copy link
Contributor Author

I took a quick look at Gormiti (following my previous attempt with #9914). The main video is drawn with z=0 which ends up at the far plane, while the black rectangle is drawn with z=1 which ends up at the near plane. The rectangle is drawn in black with an alpha value of 1/255, but unlike the other things I've looked into here they have depth updates disabled (for both the video and the black rectangle). The blend mode is configured so that the dest factor is the src alpha, meaning that the rectangle's alpha value is used to affect how bright the existing data is (and the blend mode's src factor is 0, so the actual color of the rectangle is irrelevant). This means that the alpha would need to be 255/255 for the output to be unaffected (presumably). I suspect that the alpha is getting changed due to the rectangle being at the near plane, since I know I tested moving it elsewhere and behavior changed (and if only one vertex is moved, things also look weird).

I mention this because that means that this change making Gormiti solid black instead of having color values of 0 or 1 in each channel is probably still fine; I don't think Gormiti is directly dependent on this behavior (instead it's dependent on whatever is going on with the near plane). It's also not like having values of 0/1 in each channel was enough to actually see the game; for all intents and purposes it was black before and it's still black now.

@JMC47
Copy link
Contributor

JMC47 commented Feb 11, 2022

This is approved and I tested the 3 known affected games.

The code is also relatively simple, and the comments are very clear. There isn't a lot changed and part of it appears to be a revert. I think this is safe to merge with the approval and we're just past a beta.

@JMC47 JMC47 merged commit 30a9777 into dolphin-emu:master Feb 11, 2022
@Pokechu22
Copy link
Contributor Author

This also fixes shadows in Micro Machines, which seems to directly care about the lerping behavior.

Pokechu22 added a commit to Pokechu22/dolphin that referenced this pull request Dec 28, 2022
This was added in dolphin-emu#10394 for both the hardware and software backends to work around an issue with Mario Kart Wii, Fortune Street, and Baten Kaitos. However, it seems like the software renderer handles blending well enough that we don't need this (and in any case, it's easy to change blending in the software renderer).

Some experimentation with dolphin-emu#11387 (not pushed) showed that the software renderer's logic would also produce correct results on the hardware backends with this hack removed, but would require fbfetch (currently); if a better solution is found the hack can also be removed from the hardware backends.
OatmealDome pushed a commit to OatmealDome/dolphin that referenced this pull request Sep 3, 2023
This was added in dolphin-emu#10394 for both the hardware and software backends to work around an issue with Mario Kart Wii, Fortune Street, and Baten Kaitos. However, it seems like the software renderer handles blending well enough that we don't need this (and in any case, it's easy to change blending in the software renderer).

Some experimentation with dolphin-emu#11387 (not pushed) showed that the software renderer's logic would also produce correct results on the hardware backends with this hack removed, but would require fbfetch (currently); if a better solution is found the hack can also be removed from the hardware backends.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
4 participants