diff options
| author | 2022-08-19 22:15:23 -0400 | |
|---|---|---|
| committer | 2022-10-06 21:00:54 +0200 | |
| commit | 0d99b7962d8e06958668168cdae155fd1e3d1757 (patch) | |
| tree | 55ef394dafbe74050da9cffbc184a3c898ce71b7 /src | |
| parent | general: rework usages of UNREACHABLE macro (diff) | |
| download | yuzu-0d99b7962d8e06958668168cdae155fd1e3d1757.tar.gz yuzu-0d99b7962d8e06958668168cdae155fd1e3d1757.tar.xz yuzu-0d99b7962d8e06958668168cdae155fd1e3d1757.zip | |
state_tracker: workaround channel setup for homebrew
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/query_cache.h | 6 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state_tracker.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state_tracker.h | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_state_tracker.cpp | 3 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_state_tracker.h | 1 |
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 | ||
| 240 | StateTracker::StateTracker() : flags{} {} | 240 | StateTracker::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 | ||
| 224 | private: | 224 | private: |
| 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 | ||
| 209 | StateTracker::StateTracker() : flags{}, invalidation_flags{MakeInvalidationFlags()} {} | 209 | StateTracker::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 | }; |