diff options
author | Subv <subv2112@gmail.com> | 2018-03-17 02:32:44 +0100 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2018-03-17 02:32:44 +0100 |
commit | 29feece4b849bd40cc6dcef6c60f4bc58707557a (patch) | |
tree | a9e78b0689325e2f3b330785c767e5b3ff2f738e /src/video_core/engines/maxwell_3d.cpp | |
parent | Merge pull request #236 from bunnei/refactor-process-creation (diff) | |
download | yuzu-29feece4b849bd40cc6dcef6c60f4bc58707557a.tar yuzu-29feece4b849bd40cc6dcef6c60f4bc58707557a.tar.gz yuzu-29feece4b849bd40cc6dcef6c60f4bc58707557a.tar.bz2 yuzu-29feece4b849bd40cc6dcef6c60f4bc58707557a.tar.lz yuzu-29feece4b849bd40cc6dcef6c60f4bc58707557a.tar.xz yuzu-29feece4b849bd40cc6dcef6c60f4bc58707557a.tar.zst yuzu-29feece4b849bd40cc6dcef6c60f4bc58707557a.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/engines/maxwell_3d.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp index 842c5a014..ef32180dd 100644 --- a/src/video_core/engines/maxwell_3d.cpp +++ b/src/video_core/engines/maxwell_3d.cpp @@ -8,8 +8,23 @@ namespace Tegra { namespace Engines { +const std::unordered_map<u32, Maxwell3D::MethodInfo> Maxwell3D::method_handlers = { + {0xE24, {"PrepareShader", 5, &Maxwell3D::PrepareShader}}, +}; + Maxwell3D::Maxwell3D(MemoryManager& memory_manager) : memory_manager(memory_manager) {} +void Maxwell3D::CallMethod(u32 method, const std::vector<u32>& parameters) { + auto itr = method_handlers.find(method); + if (itr == method_handlers.end()) { + LOG_ERROR(HW_GPU, "Unhandled method call %08X", method); + return; + } + + ASSERT(itr->second.arguments == parameters.size()); + (this->*itr->second.handler)(parameters); +} + void Maxwell3D::WriteReg(u32 method, u32 value) { ASSERT_MSG(method < Regs::NUM_REGS, "Invalid Maxwell3D register, increase the size of the Regs structure"); @@ -56,5 +71,7 @@ void Maxwell3D::DrawArrays() { LOG_WARNING(HW_GPU, "Game requested a DrawArrays, ignoring"); } +void Maxwell3D::PrepareShader(const std::vector<u32>& parameters) {} + } // namespace Engines } // namespace Tegra |