diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2022-12-07 00:28:35 +0100 |
---|---|---|
committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2023-01-01 22:43:58 +0100 |
commit | 581a7d785bb4936c92d320f17d3d824e244eee5a (patch) | |
tree | f378a4075f924ad9b5a775195e0b32e5ca032c7a /src/video_core/renderer_opengl | |
parent | RasterizerMemory: Add filtering for flushing/invalidation operations. (diff) | |
download | yuzu-581a7d785bb4936c92d320f17d3d824e244eee5a.tar yuzu-581a7d785bb4936c92d320f17d3d824e244eee5a.tar.gz yuzu-581a7d785bb4936c92d320f17d3d824e244eee5a.tar.bz2 yuzu-581a7d785bb4936c92d320f17d3d824e244eee5a.tar.lz yuzu-581a7d785bb4936c92d320f17d3d824e244eee5a.tar.xz yuzu-581a7d785bb4936c92d320f17d3d824e244eee5a.tar.zst yuzu-581a7d785bb4936c92d320f17d3d824e244eee5a.zip |
Diffstat (limited to 'src/video_core/renderer_opengl')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 15 | ||||
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index d58dcedea..ed7558073 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -525,6 +525,21 @@ void RasterizerOpenGL::TickFrame() { } } +bool RasterizerOpenGL::AccelerateConditionalRendering() { + if (Settings::IsGPULevelHigh()) { + // Reimplement Host conditional rendering. + return false; + } + // Medium / Low Hack: stub any checks on queries writen into the buffer cache. + const GPUVAddr condition_address{maxwell3d->regs.render_enable.Address()}; + Maxwell::ReportSemaphore::Compare cmp; + if (gpu_memory->IsMemoryDirty(condition_address, sizeof(cmp), + VideoCommon::CacheType::BufferCache)) { + return true; + } + return false; +} + bool RasterizerOpenGL::AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Surface& src, const Tegra::Engines::Fermi2D::Surface& dst, const Tegra::Engines::Fermi2D::Config& copy_config) { diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h index 94e65d64b..d119c2b66 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.h +++ b/src/video_core/renderer_opengl/gl_rasterizer.h @@ -100,6 +100,7 @@ public: void TiledCacheBarrier() override; void FlushCommands() override; void TickFrame() override; + bool AccelerateConditionalRendering() override; bool AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Surface& src, const Tegra::Engines::Fermi2D::Surface& dst, const Tegra::Engines::Fermi2D::Config& copy_config) override; |