Преглед на файлове

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.
Billy Laws преди 4 години
родител
ревизия
ea89cf8639
променени са 2 файла, в които са добавени 3 реда и са изтрити 3 реда
  1. 2 2
      src/video_core/engines/maxwell_3d.cpp
  2. 1 1
      src/video_core/engines/maxwell_3d.h

+ 2 - 2
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,

+ 1 - 1
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,