diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-07-28 00:40:10 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-02-14 21:27:17 +0100 |
commit | 2b58652f0897053d4da04deb586490220ab5a774 (patch) | |
tree | cb49e0b4da2297e25da1aa196bbb38d6e996d399 /src/video_core/renderer_opengl/gl_rasterizer.cpp | |
parent | gl_resource_manager: Add managed query class (diff) | |
download | yuzu-2b58652f0897053d4da04deb586490220ab5a774.tar yuzu-2b58652f0897053d4da04deb586490220ab5a774.tar.gz yuzu-2b58652f0897053d4da04deb586490220ab5a774.tar.bz2 yuzu-2b58652f0897053d4da04deb586490220ab5a774.tar.lz yuzu-2b58652f0897053d4da04deb586490220ab5a774.tar.xz yuzu-2b58652f0897053d4da04deb586490220ab5a774.tar.zst yuzu-2b58652f0897053d4da04deb586490220ab5a774.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index b0eb14c8b..8d132732a 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -547,6 +547,9 @@ void RasterizerOpenGL::Draw(bool is_indexed, bool is_instanced) { MICROPROFILE_SCOPE(OpenGL_Drawing); auto& gpu = system.GPU().Maxwell3D(); + const auto& regs = gpu.regs; + samples_passed.UpdateState(regs.samplecnt_enable); + SyncRasterizeEnable(state); SyncColorMask(); SyncFragmentColorClampState(); @@ -709,6 +712,27 @@ void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) { glDispatchCompute(launch_desc.grid_dim_x, launch_desc.grid_dim_y, launch_desc.grid_dim_z); } +void RasterizerOpenGL::ResetCounter(VideoCore::QueryType type) { + switch (type) { + case VideoCore::QueryType::SamplesPassed: + samples_passed.Reset(); + break; + default: + UNIMPLEMENTED_MSG("type={}", static_cast<u32>(type)); + break; + } +} + +u64 RasterizerOpenGL::Query(VideoCore::QueryType type) { + switch (type) { + case VideoCore::QueryType::SamplesPassed: + return samples_passed.Query(); + default: + UNIMPLEMENTED_MSG("type={}", static_cast<u32>(type)); + return 1; + } +} + void RasterizerOpenGL::FlushAll() {} void RasterizerOpenGL::FlushRegion(CacheAddr addr, u64 size) { |