DMAPusher: Propagate multimethod writes into the engines.

This commit is contained in:
Fernando Sahmkow 2020-04-20 02:16:56 -04:00
parent eb26e9e711
commit 3fedcc2f6e
14 changed files with 163 additions and 13 deletions

View file

@ -155,6 +155,9 @@ public:
/// Calls a GPU method.
void CallMethod(const MethodCall& method_call);
/// Calls a GPU multivalue method.
void CallMultiMethod(u32 method, u32 subchannel, const u32* base_start, u32 amount, u32 methods_pending);
/// Flush all current written commands into the host GPU for execution.
void FlushCommands();
/// Synchronizes CPU writes with Host GPU memory.
@ -309,8 +312,11 @@ private:
/// Calls a GPU engine method.
void CallEngineMethod(const MethodCall& method_call);
/// Calls a GPU engine multivalue method.
void CallEngineMultiMethod(u32 method, u32 subchannel, const u32* base_start, u32 amount, u32 methods_pending);
/// Determines where the method should be executed.
bool ExecuteMethodOnEngine(const MethodCall& method_call);
bool ExecuteMethodOnEngine(u32 method);
protected:
std::unique_ptr<Tegra::DmaPusher> dma_pusher;