Skip to content
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

Regression: Breath of Fire III now jumps up and down rapidly since a3078a6ae #7974

Closed
thedax opened this issue Sep 17, 2015 · 1 comment · Fixed by #8000
Closed

Regression: Breath of Fire III now jumps up and down rapidly since a3078a6ae #7974

thedax opened this issue Sep 17, 2015 · 1 comment · Fixed by #8000

Comments

@thedax
Copy link
Collaborator

thedax commented Sep 17, 2015

Ever since #7964 was merged, Breath of Fire 3 now jumbles up and down rapidly much like it used to a long time ago. More specifically, a3078a6 is the offending commit. If I revert to the one just before it, the game does not exhibit the issue.

@thedax thedax changed the title Regression: Breath of Fire III now jumps up and down since a3078a6ae Regression: Breath of Fire III now jumps up and down rapidly since a3078a6ae Sep 17, 2015
@unknownbrackets
Copy link
Collaborator

So, not sure what's happening here, but tracing the logic, let me describe what happens and why it should work the way it is. I don't know what's not working - maybe logging can help?

First - to remember what the game does:

AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBB

Above, A is framebuffer/render target A, and B is framebuffer/render target B. It uses A as a texture ALWAYS, and sends either UV coordinates pointing at A, or UV coordinates pointing at B.

Now, what should be happening:

Step 1. DoFlush is triggered for copying the render from A or B to the screen.
Step 2. ApplyDrawState(prim) always picks A, never B.
Step 3. Vertex shader, vertex decode, etc.
Step 4. SoftwareTransform - now we detect and set the pending texture to B.
Step 5. ApplyDrawStateLate binds the pending texture.
Step 6. ApplyFragmentShader shouldn't matter when this happens exactly...
Step 7. We actually draw.

So, I'm not sure what moving ApplyFragmentShader ought to matter. The other one definitely needs to be down below, though.

I did find something, though... sometimes we refuse to resize down a framebuffer that was detected too tall but has been smaller consistently for a while.

-[Unknown]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants