Jelajahi Sumber

maxwell3d: add small_index_2 register

Liam 4 tahun lalu
induk
melakukan
a24e7ba61b

+ 5 - 0
src/video_core/engines/maxwell_3d.cpp

@@ -214,6 +214,11 @@ void Maxwell3D::ProcessMethodCall(u32 method, u32 argument, u32 nonshadow_argume
         regs.index_array.first = regs.small_index.first;
         dirty.flags[VideoCommon::Dirty::IndexBuffer] = true;
         return DrawArrays();
+    case MAXWELL3D_REG_INDEX(small_index_2):
+        regs.index_array.count = regs.small_index_2.count;
+        regs.index_array.first = regs.small_index_2.first;
+        dirty.flags[VideoCommon::Dirty::IndexBuffer] = true;
+        return DrawArrays();
     case MAXWELL3D_REG_INDEX(topology_override):
         use_topology_override = true;
         return;

+ 6 - 1
src/video_core/engines/maxwell_3d.h

@@ -1220,7 +1220,12 @@ public:
                     BitField<16, 16, u32> count;
                 } small_index;
 
-                INSERT_PADDING_WORDS_NOINIT(0x6);
+                union {
+                    BitField<0, 16, u32> first;
+                    BitField<16, 16, u32> count;
+                } small_index_2;
+
+                INSERT_PADDING_WORDS_NOINIT(0x5);
 
                 INSERT_PADDING_WORDS_NOINIT(0x1F);