-
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
Apply Unknown's clearing fix from #8973. #8987
Conversation
} | ||
} | ||
} else if (bpp == 2) { | ||
u16 *addr32 = (u16 *)addr; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, this should probably be addr16
. Unfortunately, this will be a common case because of alpha - I was thinking of using a u64 or something as faux-simd, since the fb should always be a multiple of 16 bytes anyway.
-[Unknown]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess the width (not the stride, but the scissor x2 - x1) doesn't have to be an aligned size, so maybe that's complicating things...
-[Unknown]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For performance we can always check for that and align if possible, though it's extra code.
Due to the possible performance impact (as this code will probably be triggered by a lot of games that don't need it) I've decided to postpone until after 1.3.0. Unfortunately that means that the glitch will remain in Socom for now.. |
// If easy, immediately clear the RAM too. | ||
if (g_Config.bBlockTransferGPU && colorMask && alphaMask) { | ||
u8 *addr = Memory::GetPointer(gstate.getFrameBufAddress()); | ||
const bool singleByteClear = (clearColor >> 16) == (clearColor && 0xFFFF) && (clearColor >> 24) == (clearColor & 0xFF); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Derp: another typo, & 0xFFFF
. I'll see if I can update this.
-[Unknown]
This change also fixes some fades in Brave Story (when fading to black, sometimes an earlier scene flashes for a moment without this.) -[Unknown] |
I'm going to close this in favor of #8994 - sorry. I ended up fixing several things from my original implementation. -[Unknown] |
Feels maybe a little dangerous so close to release, but makes sense.