diff options
author | Billy Laws <blaws05@gmail.com> | 2022-06-02 21:45:22 +0100 |
---|---|---|
committer | Billy Laws <blaws05@gmail.com> | 2022-06-02 21:46:38 +0100 |
commit | ea89cf8639c19ca37fb5b52f71ecfed0dafb7b50 (patch) | |
tree | 65f28a69549bf035519c672110e70704437b5dda /src | |
parent | 5c0a31e29f2a750ffc3a9b9d716f7630d6c2abca (diff) |
Maxwell3D: Fix 3D semaphore counter type 0 handling
Counter type 0 actually releases the semaphore payload rather than a constant zero as was previously thought. This is required by Skyrim.
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/engines/maxwell_3d.cpp | 4 | ||||
-rw-r--r-- | src/video_core/engines/maxwell_3d.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp index 7d0cb8fce..3a4646289 100644 --- a/src/video_core/engines/maxwell_3d.cpp +++ b/src/video_core/engines/maxwell_3d.cpp @@ -595,8 +595,8 @@ void Maxwell3D::DrawArrays() { std::optional<u64> Maxwell3D::GetQueryResult() { switch (regs.query.query_get.select) { - case Regs::QuerySelect::Zero: - return 0; + case Regs::QuerySelect::Payload: + return regs.query.query_sequence; case Regs::QuerySelect::SamplesPassed: // Deferred. rasterizer->Query(regs.query.QueryAddress(), QueryType::SamplesPassed, diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index c0c2c7d96..434ba0877 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h @@ -93,7 +93,7 @@ public: }; enum class QuerySelect : u32 { - Zero = 0, + Payload = 0, TimeElapsed = 2, TransformFeedbackPrimitivesGenerated = 11, PrimitivesGenerated = 18, |