-
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
Missing background : Romance Of Three Kingdom 9 PK #2159
Comments
This is the frame dump log Already tried to disable alpha/color test but seems not helping |
Sometimes you have to hit it more than once, if the game is frameskipping. That log doesn't have any GE commands in it... -[Unknown] |
@unknownbrackets Arr .yes , hit twice works oka now . Since it is pretty big in size, i cannot put it in pastebin. |
@unknownbrackets , wondering anything we can try to change and test it out to see if we can fix this black BG . |
Does the hack I posted at the top of #2308 improve it at all? -[Unknown] |
Unfornaturely not , it didn't help in this black BG . |
@hrydgard / @unknownbrackets , tried to take the follow changes, the background reappears but fonts missing .Any suggestion changes ?
|
WRITE(p, " gl_Position = u_proj_through * vec4(a_position.xy, 1.0, 0.0);\n"); Which game can fix or broke by change this code? |
@raven02 , that is surely wrong, because in the w coordinate, we stash the fog depth. Multiplying the fog depth with a column of the projection matrix is just nonsense, so what works, works by accident. @cv47 , that throws away depth information so if that fixes something it's also by accident. We are probably missing something else when it comes to Z stuff.. for example we don't implement MINZ and MAXZ, I don't really know how they are supposed to work. |
@hrydgard , would it be vertex decoder issue ? i try something else in DEC_FLOAT_3 or comment out memcpy(pos, f, 12);, the background appears .....
|
Alright .Just test this out on the upcoming softGPU , it seems to render all correctly and no missing background . Wondering where should we start to compare the code difference ? |
@raven02 I‘m trying to fix this bug, but I get the same problem as you, |
@raven02 my suggestion for comparing with the softgpu is to attempt to make the softgpu look like what you see in gles. But, that is not really easy either... What you want to do is to identify things. It'd be good to identify what vertex types, values, and state it's using when drawing the background, and the same things for the fonts. DEBUG_TEXTURES was my hack to find these things, but we really need to get around to porting/using/creating the GE debugger... Once you have that, I would try to test different scenarios to see what it's doing, and what's correct. -[Unknown] |
@unknownbrackets , yep , i'll follow your suggest approach to see if i can find out the difference . @sraphy , that one with both background and font show up is from softGPU |
I have pressed around 30 times that 'Break' button to get that and the missing background showup |
That means it's drawing the background somewhere (e.g. to a different FBO.) -[Unknown] |
I see. Most likely draw to depth buffer as i seen this log ? 27:04:037 user_main W[SCEGE]: GLES\Framebuffer.cpp:610 FBO sharing existing depthbuffer (unsupported), 00088000/00110000 and 00000000/00110000 |
Well, it's possible. I added those warnings to get a feel for where it is possible and where it's not. -[Unknown] |
I see. |
In Gundam AGE, it suppose to have background in your screenshot? |
@daniel229 , looks like it has background .I found it in a youtube |
What does it render to the other? What if you set a breakpoint on 04088000 for size 00088000? -[Unknown] |
Let me try |
set a breakpoint on 04088000 for size 00088000,it did not catch anything. |
It render to 00000000 and 00088000 in turn frame by frame. first frame to 00000000 |
Hrm. If you save state / load state does it still display something? When loading state, it loads whatever is in RAM behind the framebuffers. That's why it implies to me that it has drawn something to RAM and the framebuffers are just black. But if breakpoints don't trip... We did fix some missing breakpoint checks, though. Can you double check if they don't trip now? Make sure to set the breakpoints before entering the scene, or else pan the view. It may only redraw when there's a change (possibly...) -[Unknown] |
And no hits on the memory breakpoint either? Software rendering works right? Maybe @raven02's savestate was from softgpu and that's why it worked for a second. Hmm. -[Unknown] |
breakpoint which address? |
04000000 with size 0x110000. -[Unknown] |
Not hit. |
update the log to v1.1.1-340-g01669cb |
I've gotten some GE debugger related info on this. Dumping my observations from that data here: Apparently, the game draws everything fine, until some point when it draws something on the framebuffer with blending. This is when the framebuffer goes black. This particular draw seems weird. It seems it's drawing lines using rectangles, but:
The last thing is apparently the kicker. By hacking it to avoid this last rectangle, the game seems to draw fine. It's not a block transfer issue at all, then, but instead a clipping one. On the PSP, per my earlier tests, anything drawn outside the 0,0 - 4096,4096 window coords (translated/scaled via the viewport) gets clipped entirely. Therefore a draw of 8000,4000 should simply be skipped outright. It's accidental and incorrect that it's even drawn. IMHO, this is a bug in the game, though. Assuming I'm understanding correctly. -[Unknown] |
I expect this to work now - on all backends - now that #11393 is merged. How's it look now? -[Unknown] |
v1.6.3-497-gead4946fd Win 7 64 bit |
Awesome - I'm going to assume Vulkan is fixed too and close this. Thanks for verifying. -[Unknown] |
This missing background never worked before in any build .Just for record.
The text was updated successfully, but these errors were encountered: