RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.35k stars 1.91k forks source link

SEGA Rally [BLES00107] regressed from playable to ingame. Flickering skybox #11765

Closed jonibim closed 2 years ago

jonibim commented 2 years ago

Quick summary

The rendering of the skybox in Sega Rally is constantly flickering between black and the actual skyblock image.

Details

The skybox in Sega Rally has black patches on it that are affected by the camera movement of the player. If the camera is static on one place (this can be done by simply stopping the car and holding the brake button X) then the black patches on the skybox will also appear static. However when the camera starts moving, the "black holes" rapidly starts moving giving a flickering effect. Would not recommend as playable for people with photosensitivity seizures.

Furthermore, the affect seems to behave differently in different maps and positions. For example, the flickering on the skybox happens mostly near the center of the screen on maps that are covered by high scenery such as mountains. However for maps with less scenery such as maps in the desert, the flickering is more widespread to almost the entire skybox.

This game has been affected by two regressions. The first regression happens on the pull request #11268 which resulted in a complete black skybox and missing background for the game menu. The second regression is on pull request #11301, it fixes the problem with the missing background on the game menu, but it introduces the skybox flickering as described previously. The issue remains up to the latest build identified by pull request #11757

1. Please provide exact build (or commit) information that introduced the regression you're reporting.

In this i will attach three because of the two regressions mentioned

RPCS3_BEFORE.log RPCS3_REG1.log RPCS3_REG2.log

3. If you describe graphical regression, please provide an RSX capture and a RenderDoc capture that demonstrate

Could not get RenderDoc to work unfortunately for Appimages :( Only RSX capture on this MEGA link

4. Please attach screenshots of your problem.

Before

BEFORE

First Regression

AFTER_REG1

Second Regression

https://user-images.githubusercontent.com/16855557/162644678-c0e4d8c1-8bce-4615-a2b3-847fa9f8e327.mp4

5. Please provide comparison with real PS3.

At the moment, I don't have any PS3 available :(

6. Please provide your system configuration:

hvhbot commented 2 years ago

Probably same as #11669

kd-11 commented 2 years ago

The problem is that GPUs don't have the precision required to emulate some RSX behavior, so we used a really ugly hack in the past to work around it. Now we have the proper solution but very slight changes in calculated values can cause a pass/fail condition to trigger and you get the flickering geometry. Ftr the old hack also caused flickering in other titles. I have a solution that might work, by having non-linear behavior around integral Z values, that should fix all the issues hopefully. Failing that, we'll have to reintroduce the old behavior as a checkbox.

kd-11 commented 2 years ago

Test with https://github.com/RPCS3/rpcs3/pull/11766