diff --git a/GPU/D3D11/GPU_D3D11.cpp b/GPU/D3D11/GPU_D3D11.cpp index 2b8179e472..c230723a8e 100644 --- a/GPU/D3D11/GPU_D3D11.cpp +++ b/GPU/D3D11/GPU_D3D11.cpp @@ -185,16 +185,6 @@ void GPU_D3D11::FinishDeferred() { drawEngine_.FinishDeferred(); } -inline void GPU_D3D11::CheckFlushOp(int cmd, u32 diff) { - const u8 cmdFlags = cmdInfo_[cmd].flags; - if (diff && (cmdFlags & FLAG_FLUSHBEFOREONCHANGE)) { - if (dumpThisFrame_) { - NOTICE_LOG(G3D, "================ FLUSH ================"); - } - drawEngine_.Flush(); - } -} - void GPU_D3D11::PreExecuteOp(u32 op, u32 diff) { CheckFlushOp(op >> 24, diff); } diff --git a/GPU/D3D11/GPU_D3D11.h b/GPU/D3D11/GPU_D3D11.h index 0fece6f431..bba27d040c 100644 --- a/GPU/D3D11/GPU_D3D11.h +++ b/GPU/D3D11/GPU_D3D11.h @@ -54,8 +54,6 @@ protected: void FinishDeferred() override; private: - // void ApplyDrawState(int prim); - void CheckFlushOp(int cmd, u32 diff); void BuildReportingInfo() override; void InitClear() override; diff --git a/GPU/Directx9/GPU_DX9.cpp b/GPU/Directx9/GPU_DX9.cpp index a85903a94c..cfe17016a5 100644 --- a/GPU/Directx9/GPU_DX9.cpp +++ b/GPU/Directx9/GPU_DX9.cpp @@ -181,16 +181,6 @@ void GPU_DX9::FinishDeferred() { drawEngine_.FinishDeferred(); } -inline void GPU_DX9::CheckFlushOp(int cmd, u32 diff) { - const u8 cmdFlags = cmdInfo_[cmd].flags; - if (diff && (cmdFlags & FLAG_FLUSHBEFOREONCHANGE)) { - if (dumpThisFrame_) { - NOTICE_LOG(G3D, "================ FLUSH ================"); - } - drawEngine_.Flush(); - } -} - void GPU_DX9::PreExecuteOp(u32 op, u32 diff) { CheckFlushOp(op >> 24, diff); } diff --git a/GPU/Directx9/GPU_DX9.h b/GPU/Directx9/GPU_DX9.h index 621ad79857..2e0e697b3c 100644 --- a/GPU/Directx9/GPU_DX9.h +++ b/GPU/Directx9/GPU_DX9.h @@ -54,7 +54,6 @@ protected: void FinishDeferred() override; private: - void CheckFlushOp(int cmd, u32 diff); void BuildReportingInfo() override; void InitClear() override; diff --git a/GPU/GLES/GPU_GLES.cpp b/GPU/GLES/GPU_GLES.cpp index 3646fc802c..5b882f32f8 100644 --- a/GPU/GLES/GPU_GLES.cpp +++ b/GPU/GLES/GPU_GLES.cpp @@ -334,16 +334,6 @@ void GPU_GLES::FinishDeferred() { drawEngine_.FinishDeferred(); } -inline void GPU_GLES::CheckFlushOp(int cmd, u32 diff) { - const u8 cmdFlags = cmdInfo_[cmd].flags; - if (diff && (cmdFlags & FLAG_FLUSHBEFOREONCHANGE)) { - if (dumpThisFrame_) { - NOTICE_LOG(G3D, "================ FLUSH ================"); - } - drawEngine_.Flush(); - } -} - void GPU_GLES::PreExecuteOp(u32 op, u32 diff) { CheckFlushOp(op >> 24, diff); } diff --git a/GPU/GLES/GPU_GLES.h b/GPU/GLES/GPU_GLES.h index ce2b363149..94e921ca7b 100644 --- a/GPU/GLES/GPU_GLES.h +++ b/GPU/GLES/GPU_GLES.h @@ -65,7 +65,6 @@ protected: void FinishDeferred() override; private: - void CheckFlushOp(int cmd, u32 diff); void BuildReportingInfo() override; void InitClear() override; diff --git a/GPU/GPUCommon.cpp b/GPU/GPUCommon.cpp index 836af1236d..bfc2123b3a 100644 --- a/GPU/GPUCommon.cpp +++ b/GPU/GPUCommon.cpp @@ -3609,3 +3609,13 @@ void GPUCommon::UpdateMSAALevel(Draw::DrawContext *draw) { msaaLevel_ = 0; } } + +void GPUCommon::CheckFlushOp(int cmd, u32 diff) { + const u8 cmdFlags = cmdInfo_[cmd].flags; + if (diff && (cmdFlags & FLAG_FLUSHBEFOREONCHANGE)) { + if (dumpThisFrame_) { + NOTICE_LOG(G3D, "================ FLUSH ================"); + } + drawEngineCommon_->DispatchFlush(); + } +} diff --git a/GPU/GPUCommon.h b/GPU/GPUCommon.h index a63677bfe1..ff53cb6e49 100644 --- a/GPU/GPUCommon.h +++ b/GPU/GPUCommon.h @@ -313,6 +313,8 @@ protected: // TODO: Unify this. The only backend that differs is Vulkan. virtual void FinishDeferred() {} + void CheckFlushOp(int cmd, u32 diff); + void AdvanceVerts(u32 vertType, int count, int bytesRead) { if ((vertType & GE_VTYPE_IDX_MASK) != GE_VTYPE_IDX_NONE) { int indexShift = ((vertType & GE_VTYPE_IDX_MASK) >> GE_VTYPE_IDX_SHIFT) - 1; diff --git a/GPU/Vulkan/GPU_Vulkan.cpp b/GPU/Vulkan/GPU_Vulkan.cpp index 8e1ad1e2d1..258b7d5821 100644 --- a/GPU/Vulkan/GPU_Vulkan.cpp +++ b/GPU/Vulkan/GPU_Vulkan.cpp @@ -416,16 +416,6 @@ void GPU_Vulkan::FinishDeferred() { drawEngine_.FinishDeferred(); } -inline void GPU_Vulkan::CheckFlushOp(int cmd, u32 diff) { - const u8 cmdFlags = cmdInfo_[cmd].flags; - if (diff && (cmdFlags & FLAG_FLUSHBEFOREONCHANGE)) { - if (dumpThisFrame_) { - NOTICE_LOG(G3D, "================ FLUSH ================"); - } - drawEngine_.Flush(); - } -} - void GPU_Vulkan::PreExecuteOp(u32 op, u32 diff) { CheckFlushOp(op >> 24, diff); } diff --git a/GPU/Vulkan/GPU_Vulkan.h b/GPU/Vulkan/GPU_Vulkan.h index 67f8301e00..6544b1de41 100644 --- a/GPU/Vulkan/GPU_Vulkan.h +++ b/GPU/Vulkan/GPU_Vulkan.h @@ -71,7 +71,6 @@ protected: void CheckRenderResized() override; private: - void CheckFlushOp(int cmd, u32 diff); void BuildReportingInfo() override; void InitClear() override; void CopyDisplayToOutput(bool reallyDirty) override;