Try dirtying CULL_PLANES in Execute_BoundingBox in SoftGPU

This commit is contained in:
Henrik Rydgård committed 2023-07-30 18:35:18 +02:00
1 parent fd656c629d
commit f0fd9e85aa
3 files changed
+10 -2

No files matched your search

+1 -1
View File
@@ -594,7 +594,7 @@ void __DisplayFlip(int cyclesLate) {
#ifndef _DEBUG
auto err = GetI18NCategory(I18NCat::ERRORS);
if (g_Config.bSoftwareRendering) {
g_OSD.Show(OSDType::MESSAGE_INFO, err->T("Running slow: Try turning off Software Rendering"));
g_OSD.Show(OSDType::MESSAGE_INFO, err->T("Running slow: Try turning off Software Rendering"), 5.0f);
} else {
g_OSD.Show(OSDType::MESSAGE_INFO, err->T("Running slow: try frameskip, sound is choppy when slow"));
}
+6 -1
View File
@@ -81,7 +81,7 @@ const SoftwareCommandTableEntry softgpuCommandTable[] = {
{ GE_CMD_VADDR, FLAG_EXECUTE, SoftDirty::NONE, &GPUCommon::Execute_Vaddr },
{ GE_CMD_IADDR, FLAG_EXECUTE, SoftDirty::NONE, &GPUCommon::Execute_Iaddr },
{ GE_CMD_BJUMP, FLAG_EXECUTE | FLAG_READS_PC | FLAG_WRITES_PC, SoftDirty::NONE, &GPUCommon::Execute_BJump },
{ GE_CMD_BOUNDINGBOX, FLAG_EXECUTE, SoftDirty::NONE, &GPUCommon::Execute_BoundingBox },
{ GE_CMD_BOUNDINGBOX, FLAG_EXECUTE, SoftDirty::NONE, &SoftGPU::Execute_BoundingBox },
{ GE_CMD_PRIM, FLAG_EXECUTE, SoftDirty::NONE, &SoftGPU::Execute_Prim },
{ GE_CMD_BEZIER, FLAG_EXECUTE, SoftDirty::NONE, &SoftGPU::Execute_Bezier },
@@ -1031,6 +1031,11 @@ void SoftGPU::Execute_FramebufFormat(u32 op, u32 diff) {
drawEngine_->transformUnit.Flush("framebuf");
}
void SoftGPU::Execute_BoundingBox(u32 op, u32 diff) {
gstate_c.Dirty(DIRTY_CULL_PLANES);
GPUCommon::Execute_BoundingBox(op, diff);
}
void SoftGPU::Execute_ZbufPtr(u32 op, u32 diff) {
// We assume depthbuf.data won't change while we're drawing.
if (diff) {
+3
View File
@@ -187,6 +187,9 @@ public:
// Overridden to change flushing behavior.
void Execute_Call(u32 op, u32 diff);
// Overridden for a dirty flag change.
void Execute_BoundingBox(u32 op, u32 diff);
void Execute_WorldMtxNum(u32 op, u32 diff);
void Execute_ViewMtxNum(u32 op, u32 diff);
void Execute_ProjMtxNum(u32 op, u32 diff);