state_tracker: workaround channel setup for homebrew
This commit is contained in:
		| @@ -135,8 +135,10 @@ public: | |||||||
|     /// Updates counters from GPU state. Expected to be called once per draw, clear or dispatch. |     /// Updates counters from GPU state. Expected to be called once per draw, clear or dispatch. | ||||||
|     void UpdateCounters() { |     void UpdateCounters() { | ||||||
|         std::unique_lock lock{mutex}; |         std::unique_lock lock{mutex}; | ||||||
|         const auto& regs = maxwell3d->regs; |         if (maxwell3d) { | ||||||
|         Stream(VideoCore::QueryType::SamplesPassed).Update(regs.samplecnt_enable); |             const auto& regs = maxwell3d->regs; | ||||||
|  |             Stream(VideoCore::QueryType::SamplesPassed).Update(regs.samplecnt_enable); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /// Resets a counter to zero. It doesn't disable the query after resetting. |     /// Resets a counter to zero. It doesn't disable the query after resetting. | ||||||
|   | |||||||
| @@ -237,6 +237,6 @@ void StateTracker::InvalidateState() { | |||||||
|     flags->set(); |     flags->set(); | ||||||
| } | } | ||||||
|  |  | ||||||
| StateTracker::StateTracker() : flags{} {} | StateTracker::StateTracker() : flags{&default_flags} {} | ||||||
|  |  | ||||||
| } // namespace OpenGL | } // namespace OpenGL | ||||||
|   | |||||||
| @@ -223,6 +223,7 @@ public: | |||||||
|  |  | ||||||
| private: | private: | ||||||
|     Tegra::Engines::Maxwell3D::DirtyState::Flags* flags; |     Tegra::Engines::Maxwell3D::DirtyState::Flags* flags; | ||||||
|  |     Tegra::Engines::Maxwell3D::DirtyState::Flags default_flags{}; | ||||||
|  |  | ||||||
|     GLuint framebuffer = 0; |     GLuint framebuffer = 0; | ||||||
|     GLuint index_buffer = 0; |     GLuint index_buffer = 0; | ||||||
|   | |||||||
| @@ -206,6 +206,7 @@ void StateTracker::InvalidateState() { | |||||||
|     flags->set(); |     flags->set(); | ||||||
| } | } | ||||||
|  |  | ||||||
| StateTracker::StateTracker() : flags{}, invalidation_flags{MakeInvalidationFlags()} {} | StateTracker::StateTracker() | ||||||
|  |     : flags{&default_flags}, default_flags{}, invalidation_flags{MakeInvalidationFlags()} {} | ||||||
|  |  | ||||||
| } // namespace Vulkan | } // namespace Vulkan | ||||||
|   | |||||||
| @@ -161,6 +161,7 @@ private: | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     Tegra::Engines::Maxwell3D::DirtyState::Flags* flags; |     Tegra::Engines::Maxwell3D::DirtyState::Flags* flags; | ||||||
|  |     Tegra::Engines::Maxwell3D::DirtyState::Flags default_flags; | ||||||
|     Tegra::Engines::Maxwell3D::DirtyState::Flags invalidation_flags; |     Tegra::Engines::Maxwell3D::DirtyState::Flags invalidation_flags; | ||||||
|     Maxwell::PrimitiveTopology current_topology = INVALID_TOPOLOGY; |     Maxwell::PrimitiveTopology current_topology = INVALID_TOPOLOGY; | ||||||
| }; | }; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user