summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-04-14 15:57:06 +0200
committerLiam <byteslice@airmail.cc>2022-04-14 15:57:06 +0200
commita24e7ba61b11f84ec3d6388a13101f95cecca0d3 (patch)
tree434e536e8935bbcd20e5f89c3d3c9b8c083560c7
parentMerge pull request #8190 from Docteh/palswap (diff)
downloadyuzu-a24e7ba61b11f84ec3d6388a13101f95cecca0d3.tar
yuzu-a24e7ba61b11f84ec3d6388a13101f95cecca0d3.tar.gz
yuzu-a24e7ba61b11f84ec3d6388a13101f95cecca0d3.tar.bz2
yuzu-a24e7ba61b11f84ec3d6388a13101f95cecca0d3.tar.lz
yuzu-a24e7ba61b11f84ec3d6388a13101f95cecca0d3.tar.xz
yuzu-a24e7ba61b11f84ec3d6388a13101f95cecca0d3.tar.zst
yuzu-a24e7ba61b11f84ec3d6388a13101f95cecca0d3.zip
-rw-r--r--src/video_core/engines/maxwell_3d.cpp5
-rw-r--r--src/video_core/engines/maxwell_3d.h7
2 files changed, 11 insertions, 1 deletions
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp
index 54a902f56..7399e760f 100644
--- a/src/video_core/engines/maxwell_3d.cpp
+++ b/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;
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index 3f5b38e55..d36dc3daa 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/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);