-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
OutRun 2006 - Coast 2 Coast (USA) missing water #11928
Comments
In one of the dumps, it seems like the water is drawn by 703/1355 from 0x041c45e0 (64x64). For me, it only works in the software renderer. There are a few suspicious things, but the direct problem is a stencil test (& FF == FF) not passing. It's a 5551 buffer, but the stencil is zero in the hardware backends. The stencil value is established by the 0x040d4000 (64x64) texture being drawn at 701/1355. The texture looks radically different in the software renderer. 040d4000 is rendered to using 5551 several times in the beginning of the frame, but at 198/1355 it's drawn again using 5650. However, as a texture it's indicated as 4444 (which makes the colors very vibrant, heh.) The 701 draw uses an ALWAYS FF stencil test, so that's our one. The alpha test is (a & 0xE0 == 0x20), in other words checking that the 0xC0 bits are not set. From the original 5650, that's checking part of blue. We're also not even binding the framebuffer because we're worried it might be a video or some other texture with a different format in RAM. So currently, we're treating it as RAM instead... changing that could have unexpected (good or bad) effects in other games. But that's not all. It also uses RGB masking to draw this little helper texture, which is how it figures out the correct areas for water, etc. And also various logic ops too (draws 198 through 202.) -[Unknown] |
I noticed that when its working you can change the resolution multiplier, and it will break immediately. Its such a great looking game so I do hope it gets fixed soon.
|
|
About what the previous comment said, the water is completely missing in both the latest PC and Android builds. Maybe the picture was taken in a different stage where the water does not disappear? |
Seems the water works in some stages but not others. |
Outrun 2006 and Dirt 2 are using same engine that does not render water properly in hardware renderers as mentioned in #13012 Screenshots from software renderer: GE dumps: |
@inukaze what device are you using? |
Not gonna matter right now which device you're using, there's something still going fundamentally wrong here, even now after fixing all the framebuffer reinterpret stuff. I will look into this again soon. |
I should've read this one again, I noticed it used logic ops here, years ago. It's pretty clear this is the same underlying issue as #13012 at this point. -[Unknown] |
Note: Not yet fully fixed on all platforms. D3D11 and OpenGL ES coming up. Keeping closed, since the mystery is solved. |
Device : P.C OS : GNU , Kernel : Linux 4.4.301 , Architecture : x86_64 GPU : Nvidia GeForce GT 620, 2GB VRAM, Driver : nvidia |
happens in both opengl and dx11 backend and have tried it with simulate block transfers effects both on and off
DUMP.ZIP
EDIT: This appears to be the same problem as #13012 (Dirt 2 water).
The text was updated successfully, but these errors were encountered: