RPCS3 / rpcs3

PS3 emulator/debugger
https://rpcs3.net/
GNU General Public License v2.0
15.27k stars 1.9k forks source link

[NPEB00435] Beyond Good & Evil HD - Black graphics/Broken LOD #15727

Open FlexBy420 opened 3 months ago

FlexBy420 commented 3 months ago

Quick summary

A lot of textures, models etc are simply pitch black or use wrong texture like seen on the screenshots. Sometimes if you change the location the textures might get fixed but if you again change the location they might get broken again or get worse than before. These issues can be fixed by setting LOD Bias offset to -2.00 or lower, and somewhat fixed by setting AF to 16x

Details

NPEB00435_screenshot_2024_06_23_17_25_14 NPEB00435_screenshot_2024_06_23_17_25_33 NPEB00435_screenshot_2024_06_23_17_26_20 NPEB00435_screenshot_2024_06_23_17_26_53 NPEB00435_screenshot_2024_06_23_17_27_29 With AF 16x and LOD Bias offset -2.00 NPEB00435_screenshot_2024_06_23_17_31_03 NPEB00435_screenshot_2024_06_23_17_35_41 NPEB00435_screenshot_2024_06_23_17_35_26

Attach a log file

RPCS3.log.gz

Attach capture files for visual issues

NPEB00435_20240623172701_capture.rrc.gz NPEB00435_20240623172630_capture.rrc.gz

System configuration

No response

Other details

No response

rigopoui commented 2 months ago

To add to this, I noticed that #15796 is now closed, but I can confirm that this bug also occurs for me. Using the "Resolution Scale" slider somehow does nothing for this game. I can provide logs if you like.

Edit: RPCS3.log.gz Screenshot at 200% resolution scale: Screenshot 2024-07-30 230101

FlexBy420 commented 2 months ago

To add to this, I noticed that #15796 is now closed, but I can confirm that this bug also occurs for me. Using the "Resolution Scale" slider somehow does nothing for this game. I can provide logs if you like.

Game does render at higher resolution if you increase resolution scale. The fact that it doesn't seem like it it's a different story, resolution scale will not work with every game.

rigopoui commented 2 months ago

To add to this, I noticed that #15796 is now closed, but I can confirm that this bug also occurs for me. Using the "Resolution Scale" slider somehow does nothing for this game. I can provide logs if you like.

Game does render at higher resolution if you increase resolution scale. The fact that it doesn't seem like it it's a different story, resolution scale will not work with every game.

Was thinking the same, like maybe there is some downscaling being done in this specific title. But the pixelation visible makes me think that it is indeed being rendered at 100% and not at 200%. Dunno.

Edit: Looking at it again, I guess it must be downscaled from 1440p down to 720p again. Aliasing is not as bad as I would expect from native 720p.

kd-11 commented 1 month ago

To add to this, I noticed that #15796 is now closed, but I can confirm that this bug also occurs for me. Using the "Resolution Scale" slider somehow does nothing for this game. I can provide logs if you like.

Game does render at higher resolution if you increase resolution scale. The fact that it doesn't seem like it it's a different story, resolution scale will not work with every game.

Was thinking the same, like maybe there is some downscaling being done in this specific title. But the pixelation visible makes me think that it is indeed being rendered at 100% and not at 200%. Dunno.

Edit: Looking at it again, I guess it must be downscaled from 1440p down to 720p again. Aliasing is not as bad as I would expect from native 720p.

There is no way for a game to not render with scaling enabled, it's embedded at the render stage. When upscaling seems broken it just means the game is reuploading the final result from CPU (usually done to apply post-processing via CELL's SPUs). There is no way to keep the upscaling intact once we leave the GPU so you get a downscaled image on output.

kd-11 commented 1 month ago

As for the black textures, it's a mipmapping bug. For some reason we're miscalculating the extra miplevels have having 0 height which causes them to remain uninitialized. I'm looking into this.

kd-11 commented 1 month ago

Ok, I checked into it a little more, the textures aren't special. The instructions to load them are correct which means the placement is wrong. I think the game dynamically generates these mipmaps when loading the level (kinda like the OG glGenerateMipmap). Usually this is a one-shot thing, I'll need to set this up, but it is no longer a trivial investigation.