summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-07-28 00:40:10 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-02-14 21:27:17 +0100
commit2b58652f0897053d4da04deb586490220ab5a774 (patch)
treecb49e0b4da2297e25da1aa196bbb38d6e996d399 /src/video_core/renderer_opengl/gl_rasterizer.cpp
parentgl_resource_manager: Add managed query class (diff)
downloadyuzu-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.cpp24
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) {