Rpcs3: Regression: Heavy Rain glitched textures PR5726

Created on 20 Apr 2019  路  19Comments  路  Source: RPCS3/rpcs3

Heavy Rain broken texturing of characters, regressed after https://github.com/RPCS3/rpcs3/pull/5726 commit 74eeacd0
here's the current state
33
And some old version with 74eeacd0 reverted
32
here's the log
RPCS3.log.gz

Regression

Most helpful comment

Glitch appears to be triggered by WCB, finally working on a permanent fix for this.

All 19 comments

Need some kind of trace to even attempt debugging this. You can also check if https://github.com/RPCS3/rpcs3/pull/5895 has any effect on it.

Nope #5895 doesn't fix it, and what kind of trace?

RRC and/or RDC

Made some more debugging of this to minimize the revert, i found that smth wrong in surface_store.h queue_tag function, so i made this diff with equations based on previous file state, maybe it'll help
heavy_rain.zip
worked for me
28

Unfortunately those old equations often read out of bounds and are therefore incorrect (they were changed because they caused memory access problems). Remove the tags one by one and see which one is triggering. My money is on the centroid. You can disable tags by setting the address to 0, but the first instance that is 0 will abort the tests so you have to start with 1 then 2...4. I don't have this game so I can't test directly at the moment.

Not quite understand what i need to do, can you please give an example.
Yet i reduced my hack to one line and those equations are nothing to do, the line is
const u32 last_row_offset = pitch2 * (h - 1);
making it like this
const u32 last_row_offset = pitch2 * h;
or even just removing the braces
const u32 last_row_offset = pitch2 * h - 1;
working just fine

I mean there are 5 sampling points and all except the first are optional. I need them commented out one-by-one in reverse order, starting with https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/Common/surface_store.h#L182, then https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/Common/surface_store.h#L178 then https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/Common/surface_store.h#L177 and report the first change that affects the output.

None of them making any difference even commented all 4 at once and nothing the only thing that game reacts on is line const u32 last_row_offset = pitch2 * (h - 1);

Thats because you're now sampling from the adjacent image, which probably has not changed. Looks like this is a lot more complex than just the sampling points then and needs direct debugging. I'll self-assign and investigate after the next PR.

PR #5726 also regressed the water reflections in Ratchet and Clank Future: A Crack in Time which were fixed in PR #5675.

Before:
before
After:
broken
RPCS3.log.gz

This needs retesting.

@kd-11 Still an issue on master.

water

Not fixed not on master neither on misc PR

May require a quick retest and new RSX capture files for both games. I'm tracking long-standing regressions.

Ratchet and Clank Future: A Crack in Time still has the issue with the water looking red.

RSX_capture.zip

@kd-11 i noticed this issue is in your list https://github.com/RPCS3/rpcs3/issues/7220, i did some searching a while ago but didn't even found the code which made difference for me.
anyway here's the capture, if rdc needed just tell
https://mega.nz/#!nY5mFYJR!b9TpkoDqBgDnnL6Z7IQo42Jy9n3TkYDG2a8jLsv4ukU

Glitch appears to be triggered by WCB, finally working on a permanent fix for this.

It seems this bug was actually already fixed a long time ago, but a hack was placed to avoid breaking other games. I'll see about a general solution to the problem.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AniLeo picture AniLeo  路  3Comments

elad335 picture elad335  路  3Comments

On1ko picture On1ko  路  3Comments

kurosh10000 picture kurosh10000  路  3Comments

Asinin3 picture Asinin3  路  3Comments