diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2022-11-27 00:58:06 +0100 |
---|---|---|
committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2023-01-01 22:43:57 +0100 |
commit | cb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644 (patch) | |
tree | 46e00278c6265ed501488e7c6f02fc4c12a6af6c /src/video_core/engines/kepler_compute.cpp | |
parent | Revert Buffer cache changes and setup additional macros. (diff) | |
download | yuzu-cb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644.tar yuzu-cb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644.tar.gz yuzu-cb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644.tar.bz2 yuzu-cb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644.tar.lz yuzu-cb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644.tar.xz yuzu-cb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644.tar.zst yuzu-cb1497d0d7711a1c0e527aaa3e1dc3f95e5a6644.zip |
Diffstat (limited to 'src/video_core/engines/kepler_compute.cpp')
-rw-r--r-- | src/video_core/engines/kepler_compute.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/video_core/engines/kepler_compute.cpp b/src/video_core/engines/kepler_compute.cpp index e5c622155..601095f03 100644 --- a/src/video_core/engines/kepler_compute.cpp +++ b/src/video_core/engines/kepler_compute.cpp @@ -14,7 +14,12 @@ namespace Tegra::Engines { KeplerCompute::KeplerCompute(Core::System& system_, MemoryManager& memory_manager_) - : system{system_}, memory_manager{memory_manager_}, upload_state{memory_manager, regs.upload} {} + : system{system_}, memory_manager{memory_manager_}, upload_state{memory_manager, regs.upload} { + execution_mask.reset(); + execution_mask[KEPLER_COMPUTE_REG_INDEX(exec_upload)] = true; + execution_mask[KEPLER_COMPUTE_REG_INDEX(data_upload)] = true; + execution_mask[KEPLER_COMPUTE_REG_INDEX(launch)] = true; +} KeplerCompute::~KeplerCompute() = default; @@ -23,6 +28,13 @@ void KeplerCompute::BindRasterizer(VideoCore::RasterizerInterface* rasterizer_) upload_state.BindRasterizer(rasterizer); } +void KeplerCompute::ConsumeSinkImpl() { + for (auto [method, value] : method_sink) { + regs.reg_array[method] = value; + } + method_sink.clear(); +} + void KeplerCompute::CallMethod(u32 method, u32 method_argument, bool is_last_call) { ASSERT_MSG(method < Regs::NUM_REGS, "Invalid KeplerCompute register, increase the size of the Regs structure"); |