From 7ac8657432f2dad14c985ef3df3972cd126fc9d8 Mon Sep 17 00:00:00 2001 From: Subv Date: Sun, 18 Mar 2018 03:13:22 -0500 Subject: GPU: Macros are specific to the Maxwell3D engine, so handle them internally. --- src/video_core/gpu.h | 3 --- 1 file changed, 3 deletions(-) (limited to 'src/video_core/gpu.h') diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index c5ec6fdef..ba7781756 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -41,9 +41,6 @@ private: /// Writes a single register in the engine bound to the specified subchannel void WriteReg(u32 method, u32 subchannel, u32 value); - /// Calls a method in the engine bound to the specified subchannel with the input parameters. - void CallMethod(u32 method, u32 subchannel, const std::vector& parameters); - /// Mapping of command subchannels to their bound engine ids. std::unordered_map bound_engines; -- cgit v1.2.3 From aa586fa26854cfe32b97aa99c2874945420bcfc4 Mon Sep 17 00:00:00 2001 From: Subv Date: Sun, 18 Mar 2018 04:17:10 -0500 Subject: GPU: Store uploaded GPU macros and keep track of the number of method parameters. --- src/video_core/gpu.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/video_core/gpu.h') diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index ba7781756..d2e4ff52d 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -6,6 +6,7 @@ #include #include +#include #include "common/common_types.h" #include "video_core/engines/fermi_2d.h" #include "video_core/engines/maxwell_3d.h" @@ -38,8 +39,10 @@ public: std::unique_ptr memory_manager; private: + static constexpr u32 InvalidGraphMacroEntry = 0xFFFFFFFF; + /// Writes a single register in the engine bound to the specified subchannel - void WriteReg(u32 method, u32 subchannel, u32 value); + void WriteReg(u32 method, u32 subchannel, u32 value, u32 remaining_params); /// Mapping of command subchannels to their bound engine ids. std::unordered_map bound_engines; @@ -50,6 +53,11 @@ private: std::unique_ptr fermi_2d; /// Compute engine std::unique_ptr 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 current_macro_code; }; } // namespace Tegra -- cgit v1.2.3