diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp index c297bc31ba..cff90bc1d9 100644 --- a/src/video_core/engines/maxwell_3d.cpp +++ b/src/video_core/engines/maxwell_3d.cpp @@ -403,12 +403,11 @@ void Maxwell3D::ProcessQueryGet() { "Units other than CROP are unimplemented"); switch (regs.query.query_get.operation) { - case Regs::QueryOperation::Release: { - const u64 result = regs.query.query_sequence; + case Regs::QueryOperation::Release: if (regs.query.query_get.fence == 1) { - rasterizer.SignalFence(regs.query.QueryAddress(), static_cast(result)); + rasterizer.SignalFence(regs.query.QueryAddress(), regs.query.query_sequence); } else { - StampQueryResult(result, regs.query.query_get.short_query == 0); + StampQueryResult(regs.query.query_sequence, regs.query.query_get.short_query == 0); } break; } diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index ffa0a04292..db7eae065c 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -673,6 +673,7 @@ void RasterizerOpenGL::OnCPUWrite(VAddr addr, u64 size) { texture_cache.OnCPUWrite(addr, size); shader_cache.InvalidateRegion(addr, size); buffer_cache.OnCPUWrite(addr, size); + query_cache.InvalidateRegion(addr, size); } void RasterizerOpenGL::SyncGuestHost() {