forked from suyu/suyu
VideoCore: Fix OGL cache invalidation.
This commit is contained in:
parent
66e4a48b75
commit
efbb6fe288
2 changed files with 6 additions and 0 deletions
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue