summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_core/query_cache.h6
-rw-r--r--src/video_core/renderer_opengl/gl_state_tracker.cpp2
-rw-r--r--src/video_core/renderer_opengl/gl_state_tracker.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_state_tracker.cpp3
-rw-r--r--src/video_core/renderer_vulkan/vk_state_tracker.h1
5 files changed, 9 insertions, 4 deletions
diff --git a/src/video_core/query_cache.h b/src/video_core/query_cache.h
index eb68ea638..b0ebe71b7 100644
--- a/src/video_core/query_cache.h
+++ b/src/video_core/query_cache.h
@@ -135,8 +135,10 @@ public:
135 /// Updates counters from GPU state. Expected to be called once per draw, clear or dispatch. 135 /// Updates counters from GPU state. Expected to be called once per draw, clear or dispatch.
136 void UpdateCounters() { 136 void UpdateCounters() {
137 std::unique_lock lock{mutex}; 137 std::unique_lock lock{mutex};
138 const auto& regs = maxwell3d->regs; 138 if (maxwell3d) {
139 Stream(VideoCore::QueryType::SamplesPassed).Update(regs.samplecnt_enable); 139 const auto& regs = maxwell3d->regs;
140 Stream(VideoCore::QueryType::SamplesPassed).Update(regs.samplecnt_enable);
141 }
140 } 142 }
141 143
142 /// Resets a counter to zero. It doesn't disable the query after resetting. 144 /// Resets a counter to zero. It doesn't disable the query after resetting.
diff --git a/src/video_core/renderer_opengl/gl_state_tracker.cpp b/src/video_core/renderer_opengl/gl_state_tracker.cpp
index 3657f867d..a8f3a0f57 100644
--- a/src/video_core/renderer_opengl/gl_state_tracker.cpp
+++ b/src/video_core/renderer_opengl/gl_state_tracker.cpp
@@ -237,6 +237,6 @@ void StateTracker::InvalidateState() {
237 flags->set(); 237 flags->set();
238} 238}
239 239
240StateTracker::StateTracker() : flags{} {} 240StateTracker::StateTracker() : flags{&default_flags} {}
241 241
242} // namespace OpenGL 242} // namespace OpenGL
diff --git a/src/video_core/renderer_opengl/gl_state_tracker.h b/src/video_core/renderer_opengl/gl_state_tracker.h
index 97d32768b..19bcf3f35 100644
--- a/src/video_core/renderer_opengl/gl_state_tracker.h
+++ b/src/video_core/renderer_opengl/gl_state_tracker.h
@@ -223,6 +223,7 @@ public:
223 223
224private: 224private:
225 Tegra::Engines::Maxwell3D::DirtyState::Flags* flags; 225 Tegra::Engines::Maxwell3D::DirtyState::Flags* flags;
226 Tegra::Engines::Maxwell3D::DirtyState::Flags default_flags{};
226 227
227 GLuint framebuffer = 0; 228 GLuint framebuffer = 0;
228 GLuint index_buffer = 0; 229 GLuint index_buffer = 0;
diff --git a/src/video_core/renderer_vulkan/vk_state_tracker.cpp b/src/video_core/renderer_vulkan/vk_state_tracker.cpp
index 5a11d3267..f234e1a31 100644
--- a/src/video_core/renderer_vulkan/vk_state_tracker.cpp
+++ b/src/video_core/renderer_vulkan/vk_state_tracker.cpp
@@ -206,6 +206,7 @@ void StateTracker::InvalidateState() {
206 flags->set(); 206 flags->set();
207} 207}
208 208
209StateTracker::StateTracker() : flags{}, invalidation_flags{MakeInvalidationFlags()} {} 209StateTracker::StateTracker()
210 : flags{&default_flags}, default_flags{}, invalidation_flags{MakeInvalidationFlags()} {}
210 211
211} // namespace Vulkan 212} // namespace Vulkan
diff --git a/src/video_core/renderer_vulkan/vk_state_tracker.h b/src/video_core/renderer_vulkan/vk_state_tracker.h
index c107d9c24..2296dea60 100644
--- a/src/video_core/renderer_vulkan/vk_state_tracker.h
+++ b/src/video_core/renderer_vulkan/vk_state_tracker.h
@@ -161,6 +161,7 @@ private:
161 } 161 }
162 162
163 Tegra::Engines::Maxwell3D::DirtyState::Flags* flags; 163 Tegra::Engines::Maxwell3D::DirtyState::Flags* flags;
164 Tegra::Engines::Maxwell3D::DirtyState::Flags default_flags;
164 Tegra::Engines::Maxwell3D::DirtyState::Flags invalidation_flags; 165 Tegra::Engines::Maxwell3D::DirtyState::Flags invalidation_flags;
165 Maxwell::PrimitiveTopology current_topology = INVALID_TOPOLOGY; 166 Maxwell::PrimitiveTopology current_topology = INVALID_TOPOLOGY;
166}; 167};