diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp index 54a902f56f..7399e760fe 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 3f5b38e554..d36dc3daa0 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);