mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-17 04:39:34 +00:00
softgpu: Skip flushing on no change.
Minor tweak, we sometimes try to flush even without anything to flush, and were previously rechecking a lot of things.
This commit is contained in:
parent
259abf79dd
commit
e2929fb395
@ -474,6 +474,9 @@ void BinManager::Drain() {
|
||||
}
|
||||
|
||||
void BinManager::Flush(const char *reason) {
|
||||
if (queueRange_.x1 == 0x7FFFFFFF)
|
||||
return;
|
||||
|
||||
double st;
|
||||
if (coreCollectDebugStats)
|
||||
st = time_now_d();
|
||||
|
@ -1006,19 +1006,24 @@ void SoftGPU::Execute_LoadClut(u32 op, u32 diff) {
|
||||
|
||||
void SoftGPU::Execute_FramebufPtr(u32 op, u32 diff) {
|
||||
// We assume fb.data won't change while we're drawing.
|
||||
drawEngine_->transformUnit.Flush("framebuf");
|
||||
fb.data = Memory::GetPointerWrite(gstate.getFrameBufAddress());
|
||||
if (diff) {
|
||||
drawEngine_->transformUnit.Flush("framebuf");
|
||||
fb.data = Memory::GetPointerWrite(gstate.getFrameBufAddress());
|
||||
}
|
||||
}
|
||||
|
||||
void SoftGPU::Execute_FramebufFormat(u32 op, u32 diff) {
|
||||
// We should flush, because ranges within bins may change.
|
||||
drawEngine_->transformUnit.Flush("framebuf");
|
||||
if (diff)
|
||||
drawEngine_->transformUnit.Flush("framebuf");
|
||||
}
|
||||
|
||||
void SoftGPU::Execute_ZbufPtr(u32 op, u32 diff) {
|
||||
// We assume depthbuf.data won't change while we're drawing.
|
||||
drawEngine_->transformUnit.Flush("depthbuf");
|
||||
depthbuf.data = Memory::GetPointerWrite(gstate.getDepthBufAddress());
|
||||
if (diff) {
|
||||
drawEngine_->transformUnit.Flush("depthbuf");
|
||||
depthbuf.data = Memory::GetPointerWrite(gstate.getDepthBufAddress());
|
||||
}
|
||||
}
|
||||
|
||||
void SoftGPU::Execute_VertexType(u32 op, u32 diff) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user