mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-03-07 05:39:59 +00:00
GPU: Avoid using depth buffers for blending.
For now, until it's implemented.
This commit is contained in:
parent
a35d261908
commit
6060706fc8
@ -238,6 +238,9 @@ void GetFramebufferHeuristicInputs(FramebufferHeuristicParams *params, const GPU
|
||||
}
|
||||
params->isDrawing = !gstate.isModeClear() || !gstate.isClearModeColorMask() || !gstate.isClearModeAlphaMask();
|
||||
params->isModeThrough = gstate.isModeThrough();
|
||||
const bool alphaBlending = gstate.isAlphaBlendEnabled();
|
||||
const bool logicOpBlending = gstate.isLogicOpEnabled() && gstate.getLogicOp() != GE_LOGIC_CLEAR && gstate.getLogicOp() != GE_LOGIC_COPY;
|
||||
params->isBlending = alphaBlending || logicOpBlending;
|
||||
|
||||
// Viewport-X1 and Y1 are not the upper left corner, but half the width/height. A bit confusing.
|
||||
float vpx = gstate.getViewportXScale();
|
||||
@ -321,7 +324,7 @@ VirtualFramebuffer *FramebufferManagerCommon::DoSetRenderFrameBuffer(const Frame
|
||||
vfb->height = drawing_height;
|
||||
}
|
||||
break;
|
||||
} else if (params.fb_address == v->z_address && params.fmt != GE_FORMAT_8888 && params.fb_stride == v->z_stride) {
|
||||
} else if (params.fb_address == v->z_address && params.fmt != GE_FORMAT_8888 && params.fb_stride == v->z_stride && !params.isBlending) {
|
||||
// Looks like the game might be intending to use color to write directly to a Z buffer.
|
||||
// This is seen in Kuroyou 2.
|
||||
|
||||
|
@ -139,6 +139,7 @@ struct FramebufferHeuristicParams {
|
||||
bool isWritingDepth;
|
||||
bool isDrawing;
|
||||
bool isModeThrough;
|
||||
bool isBlending;
|
||||
int viewportWidth;
|
||||
int viewportHeight;
|
||||
int regionWidth;
|
||||
|
Loading…
x
Reference in New Issue
Block a user