aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/engines/kepler_memory.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2022-11-27 00:58:06 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2023-01-01 16:43:57 -0500
commitcb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644 (patch)
tree46e00278c6265ed501488e7c6f02fc4c12a6af6c /src/video_core/engines/kepler_memory.cpp
parentce448ce770b6c329caec7ad1ae00e01dddb67b03 (diff)
DMAPusher: Improve collection of non executing methods
Diffstat (limited to 'src/video_core/engines/kepler_memory.cpp')
-rw-r--r--src/video_core/engines/kepler_memory.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/video_core/engines/kepler_memory.cpp b/src/video_core/engines/kepler_memory.cpp
index 08045d1cf..c026801a3 100644
--- a/src/video_core/engines/kepler_memory.cpp
+++ b/src/video_core/engines/kepler_memory.cpp
@@ -18,6 +18,17 @@ KeplerMemory::~KeplerMemory() = default;
void KeplerMemory::BindRasterizer(VideoCore::RasterizerInterface* rasterizer_) {
upload_state.BindRasterizer(rasterizer_);
+
+ execution_mask.reset();
+ execution_mask[KEPLERMEMORY_REG_INDEX(exec)] = true;
+ execution_mask[KEPLERMEMORY_REG_INDEX(data)] = true;
+}
+
+void KeplerMemory::ConsumeSinkImpl() {
+ for (auto [method, value] : method_sink) {
+ regs.reg_array[method] = value;
+ }
+ method_sink.clear();
}
void KeplerMemory::CallMethod(u32 method, u32 method_argument, bool is_last_call) {