Add a flags parameter to InvalidateCachedState and rename it Invalidate.

Also rename the old InvalidationFlags enum to InvalidateCallbackFlags.
This commit is contained in:
Henrik Rydgård 2022-12-01 19:15:38 +01:00
parent 2067ae127a
commit 331d024a8c
24 changed files with 89 additions and 76 deletions

View file

@ -664,7 +664,7 @@ void FramebufferManagerCommon::CopyToDepthFromOverlappingFramebuffers(VirtualFra
// for (auto &source : sources) {
if (!sources.empty()) {
draw_->InvalidateCachedState();
draw_->Invalidate(InvalidationFlags::CACHED_RENDER_STATE);
auto &source = sources.back();
if (source.channel == RASTER_DEPTH) {
@ -804,7 +804,7 @@ void FramebufferManagerCommon::CopyToColorFromOverlappingFramebuffers(VirtualFra
std::sort(sources.begin(), sources.end());
draw_->InvalidateCachedState();
draw_->Invalidate(InvalidationFlags::CACHED_RENDER_STATE);
bool tookActions = false;
@ -961,7 +961,7 @@ void FramebufferManagerCommon::BlitFramebufferDepth(VirtualFramebuffer *src, Vir
RebindFramebuffer("After BlitFramebufferDepth");
}
draw_->InvalidateCachedState();
draw_->Invalidate(InvalidationFlags::CACHED_RENDER_STATE);
}
void FramebufferManagerCommon::NotifyRenderFramebufferCreated(VirtualFramebuffer *vfb) {
@ -1137,7 +1137,7 @@ void FramebufferManagerCommon::DrawPixels(VirtualFramebuffer *vfb, int dstX, int
gpuStats.numUploads++;
pixelsTex->Release();
draw_->InvalidateCachedState();
draw_->Invalidate(InvalidationFlags::CACHED_RENDER_STATE);
gstate_c.Dirty(DIRTY_ALL_RENDER_STATE);
}
@ -2777,7 +2777,7 @@ void FramebufferManagerCommon::ReadFramebufferToMemory(VirtualFramebuffer *vfb,
}
}
draw_->InvalidateCachedState();
draw_->Invalidate(InvalidationFlags::CACHED_RENDER_STATE);
textureCache_->ForgetLastTexture();
RebindFramebuffer("RebindFramebuffer - ReadFramebufferToMemory");
}
@ -2840,7 +2840,7 @@ void FramebufferManagerCommon::DownloadFramebufferForClut(u32 fb_address, u32 lo
}
void FramebufferManagerCommon::RebindFramebuffer(const char *tag) {
draw_->InvalidateCachedState();
draw_->Invalidate(InvalidationFlags::CACHED_RENDER_STATE);
shaderManager_->DirtyLastShader();
if (currentRenderVfb_ && currentRenderVfb_->fbo) {
draw_->BindFramebufferAsRenderTarget(currentRenderVfb_->fbo, { Draw::RPAction::KEEP, Draw::RPAction::KEEP, Draw::RPAction::KEEP }, tag);
@ -3064,7 +3064,7 @@ void FramebufferManagerCommon::BlitFramebuffer(VirtualFramebuffer *dst, int dstX
BlitUsingRaster(srcFBO, srcX1, srcY1, srcX2, srcY2, dst->fbo, dstX1, dstY1, dstX2, dstY2, false, dst->renderScaleFactor, pipeline, tag);
}
draw_->InvalidateCachedState();
draw_->Invalidate(InvalidationFlags::CACHED_RENDER_STATE);
gstate_c.Dirty(DIRTY_ALL_RENDER_STATE);
}