diff options
author | Sebastian Valle <subv2112@gmail.com> | 2018-03-18 21:13:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-18 21:13:40 +0100 |
commit | 46f9d4b4a34ab6d4b072a41de28771906a610d4a (patch) | |
tree | 1c17173b997f694dc0bd04d516a131748b4d990d /src/video_core/gpu.h | |
parent | Merge pull request #245 from Subv/set_shader2 (diff) | |
parent | GPU: Store uploaded GPU macros and keep track of the number of method parameters. (diff) | |
download | yuzu-46f9d4b4a34ab6d4b072a41de28771906a610d4a.tar yuzu-46f9d4b4a34ab6d4b072a41de28771906a610d4a.tar.gz yuzu-46f9d4b4a34ab6d4b072a41de28771906a610d4a.tar.bz2 yuzu-46f9d4b4a34ab6d4b072a41de28771906a610d4a.tar.lz yuzu-46f9d4b4a34ab6d4b072a41de28771906a610d4a.tar.xz yuzu-46f9d4b4a34ab6d4b072a41de28771906a610d4a.tar.zst yuzu-46f9d4b4a34ab6d4b072a41de28771906a610d4a.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/gpu.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index c5ec6fdef..d2e4ff52d 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -6,6 +6,7 @@ #include <memory> #include <unordered_map> +#include <vector> #include "common/common_types.h" #include "video_core/engines/fermi_2d.h" #include "video_core/engines/maxwell_3d.h" @@ -38,11 +39,10 @@ public: std::unique_ptr<MemoryManager> memory_manager; private: - /// Writes a single register in the engine bound to the specified subchannel - void WriteReg(u32 method, u32 subchannel, u32 value); + static constexpr u32 InvalidGraphMacroEntry = 0xFFFFFFFF; - /// Calls a method in the engine bound to the specified subchannel with the input parameters. - void CallMethod(u32 method, u32 subchannel, const std::vector<u32>& parameters); + /// Writes a single register in the engine bound to the specified subchannel + void WriteReg(u32 method, u32 subchannel, u32 value, u32 remaining_params); /// Mapping of command subchannels to their bound engine ids. std::unordered_map<u32, EngineID> bound_engines; @@ -53,6 +53,11 @@ private: std::unique_ptr<Engines::Fermi2D> fermi_2d; /// Compute engine std::unique_ptr<Engines::MaxwellCompute> maxwell_compute; + + /// Entry of the macro that is currently being uploaded + u32 current_macro_entry = InvalidGraphMacroEntry; + /// Code being uploaded for the current macro + std::vector<u32> current_macro_code; }; } // namespace Tegra |