summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Liam2022-03-11 17:16:56 -0500
committerGravatar Liam2022-03-11 19:42:12 -0500
commit56c646d82cdb78557cac7a527247bb46c6028e97 (patch)
tree3f43e2861450343ee07b93a30931bc332621ed06 /src
parentMaxwell3D: mark index buffers as dirty after updating counts (diff)
downloadyuzu-56c646d82cdb78557cac7a527247bb46c6028e97.tar.gz
yuzu-56c646d82cdb78557cac7a527247bb46c6028e97.tar.xz
yuzu-56c646d82cdb78557cac7a527247bb46c6028e97.zip
Maxwell3D: Restrict topology override effect to after the register is set
Diffstat (limited to '')
-rw-r--r--src/video_core/engines/maxwell_3d.cpp5
-rw-r--r--src/video_core/engines/maxwell_3d.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp
index 94711ad6b..92baba4e8 100644
--- a/src/video_core/engines/maxwell_3d.cpp
+++ b/src/video_core/engines/maxwell_3d.cpp
@@ -214,6 +214,9 @@ void Maxwell3D::ProcessMethodCall(u32 method, u32 argument, u32 nonshadow_argume
214 regs.index_array.first = regs.small_index.first; 214 regs.index_array.first = regs.small_index.first;
215 dirty.flags[VideoCommon::Dirty::IndexBuffer] = true; 215 dirty.flags[VideoCommon::Dirty::IndexBuffer] = true;
216 return DrawArrays(); 216 return DrawArrays();
217 case MAXWELL3D_REG_INDEX(topology_override):
218 use_topology_override = true;
219 return;
217 case MAXWELL3D_REG_INDEX(clear_buffers): 220 case MAXWELL3D_REG_INDEX(clear_buffers):
218 return ProcessClearBuffers(); 221 return ProcessClearBuffers();
219 case MAXWELL3D_REG_INDEX(query.query_get): 222 case MAXWELL3D_REG_INDEX(query.query_get):
@@ -367,7 +370,7 @@ void Maxwell3D::CallMethodFromMME(u32 method, u32 method_argument) {
367} 370}
368 371
369void Maxwell3D::ProcessTopologyOverride() { 372void Maxwell3D::ProcessTopologyOverride() {
370 if (regs.draw.topology != regs.topology_override) { 373 if (use_topology_override) {
371 regs.draw.topology.Assign(regs.topology_override); 374 regs.draw.topology.Assign(regs.topology_override);
372 } 375 }
373} 376}
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index e28937b01..eefb7a4dd 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/src/video_core/engines/maxwell_3d.h
@@ -1581,6 +1581,7 @@ private:
1581 Upload::State upload_state; 1581 Upload::State upload_state;
1582 1582
1583 bool execute_on{true}; 1583 bool execute_on{true};
1584 bool use_topology_override{false};
1584}; 1585};
1585 1586
1586#define ASSERT_REG_POSITION(field_name, position) \ 1587#define ASSERT_REG_POSITION(field_name, position) \