summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-03-11 23:16:56 +0100
committerLiam <byteslice@airmail.cc>2022-03-12 01:42:12 +0100
commit56c646d82cdb78557cac7a527247bb46c6028e97 (patch)
tree3f43e2861450343ee07b93a30931bc332621ed06
parentMaxwell3D: mark index buffers as dirty after updating counts (diff)
downloadyuzu-56c646d82cdb78557cac7a527247bb46c6028e97.tar
yuzu-56c646d82cdb78557cac7a527247bb46c6028e97.tar.gz
yuzu-56c646d82cdb78557cac7a527247bb46c6028e97.tar.bz2
yuzu-56c646d82cdb78557cac7a527247bb46c6028e97.tar.lz
yuzu-56c646d82cdb78557cac7a527247bb46c6028e97.tar.xz
yuzu-56c646d82cdb78557cac7a527247bb46c6028e97.tar.zst
yuzu-56c646d82cdb78557cac7a527247bb46c6028e97.zip
-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
regs.index_array.first = regs.small_index.first;
dirty.flags[VideoCommon::Dirty::IndexBuffer] = true;
return DrawArrays();
+ case MAXWELL3D_REG_INDEX(topology_override):
+ use_topology_override = true;
+ return;
case MAXWELL3D_REG_INDEX(clear_buffers):
return ProcessClearBuffers();
case MAXWELL3D_REG_INDEX(query.query_get):
@@ -367,7 +370,7 @@ void Maxwell3D::CallMethodFromMME(u32 method, u32 method_argument) {
}
void Maxwell3D::ProcessTopologyOverride() {
- if (regs.draw.topology != regs.topology_override) {
+ if (use_topology_override) {
regs.draw.topology.Assign(regs.topology_override);
}
}
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:
Upload::State upload_state;
bool execute_on{true};
+ bool use_topology_override{false};
};
#define ASSERT_REG_POSITION(field_name, position) \