1
0
Fork 0
forked from suyu/suyu

VideoCore: Fix OGL cache invalidation.

This commit is contained in:
Fernando Sahmkow 2023-01-07 21:56:17 -05:00
parent 66e4a48b75
commit efbb6fe288
2 changed files with 6 additions and 0 deletions

View file

@ -139,6 +139,7 @@ void RasterizerOpenGL::LoadDiskResources(u64 title_id, std::stop_token stop_load
void RasterizerOpenGL::Clear(u32 layer_count) { void RasterizerOpenGL::Clear(u32 layer_count) {
MICROPROFILE_SCOPE(OpenGL_Clears); MICROPROFILE_SCOPE(OpenGL_Clears);
gpu_memory->FlushCaching();
const auto& regs = maxwell3d->regs; const auto& regs = maxwell3d->regs;
bool use_color{}; bool use_color{};
bool use_depth{}; bool use_depth{};
@ -207,6 +208,7 @@ void RasterizerOpenGL::PrepareDraw(bool is_indexed, Func&& draw_func) {
MICROPROFILE_SCOPE(OpenGL_Drawing); MICROPROFILE_SCOPE(OpenGL_Drawing);
SCOPE_EXIT({ gpu.TickWork(); }); SCOPE_EXIT({ gpu.TickWork(); });
gpu_memory->FlushCaching();
query_cache.UpdateCounters(); query_cache.UpdateCounters();
GraphicsPipeline* const pipeline{shader_cache.CurrentGraphicsPipeline()}; GraphicsPipeline* const pipeline{shader_cache.CurrentGraphicsPipeline()};
@ -319,6 +321,7 @@ void RasterizerOpenGL::DrawIndirect() {
} }
void RasterizerOpenGL::DispatchCompute() { void RasterizerOpenGL::DispatchCompute() {
gpu_memory->FlushCaching();
ComputePipeline* const pipeline{shader_cache.CurrentComputePipeline()}; ComputePipeline* const pipeline{shader_cache.CurrentComputePipeline()};
if (!pipeline) { if (!pipeline) {
return; return;
@ -526,6 +529,7 @@ void RasterizerOpenGL::TickFrame() {
} }
bool RasterizerOpenGL::AccelerateConditionalRendering() { bool RasterizerOpenGL::AccelerateConditionalRendering() {
gpu_memory->FlushCaching();
if (Settings::IsGPULevelHigh()) { if (Settings::IsGPULevelHigh()) {
// Reimplement Host conditional rendering. // Reimplement Host conditional rendering.
return false; return false;

View file

@ -270,6 +270,7 @@ void RasterizerVulkan::Clear(u32 layer_count) {
MICROPROFILE_SCOPE(Vulkan_Clearing); MICROPROFILE_SCOPE(Vulkan_Clearing);
FlushWork(); FlushWork();
gpu_memory->FlushCaching();
query_cache.UpdateCounters(); query_cache.UpdateCounters();
@ -628,6 +629,7 @@ void RasterizerVulkan::TickFrame() {
} }
bool RasterizerVulkan::AccelerateConditionalRendering() { bool RasterizerVulkan::AccelerateConditionalRendering() {
gpu_memory->FlushCaching();
if (Settings::IsGPULevelHigh()) { if (Settings::IsGPULevelHigh()) {
// TODO(Blinkhawk): Reimplement Host conditional rendering. // TODO(Blinkhawk): Reimplement Host conditional rendering.
return false; return false;