diff --git a/app/src/main/cpp/skyline/soc/gm20b/channel.cpp b/app/src/main/cpp/skyline/soc/gm20b/channel.cpp index f06eed6f..47fefa26 100644 --- a/app/src/main/cpp/skyline/soc/gm20b/channel.cpp +++ b/app/src/main/cpp/skyline/soc/gm20b/channel.cpp @@ -5,9 +5,10 @@ #include "channel.h" namespace skyline::soc::gm20b { - ChannelContext::ChannelContext(const DeviceState &state, std::shared_ptr asCtx, size_t numEntries) : - maxwell3D(std::make_unique(state, *this, macroState, executor)), - gpfifo(state, *this, numEntries), - executor(state), - asCtx(std::move(asCtx)){} + ChannelContext::ChannelContext(const DeviceState &state, std::shared_ptr pAsCtx, size_t numEntries) + : asCtx(std::move(pAsCtx)), + executor(state), + maxwell3D(std::make_unique(state, *this, macroState, executor)), + inline2Memory(asCtx), + gpfifo(state, *this, numEntries) {} } diff --git a/app/src/main/cpp/skyline/soc/gm20b/channel.h b/app/src/main/cpp/skyline/soc/gm20b/channel.h index adb300d2..28c1ff12 100644 --- a/app/src/main/cpp/skyline/soc/gm20b/channel.h +++ b/app/src/main/cpp/skyline/soc/gm20b/channel.h @@ -6,6 +6,7 @@ #include #include "macro/macro_state.h" #include "engines/engine.h" +#include "engines/inline2memory.h" #include "gpfifo.h" namespace skyline::soc::gm20b { @@ -24,6 +25,7 @@ namespace skyline::soc::gm20b { gpu::interconnect::CommandExecutor executor; MacroState macroState; std::unique_ptr maxwell3D; //!< TODO: fix this once graphics context is moved into a cpp file + engine::Inline2Memory inline2Memory; ChannelGpfifo gpfifo; ChannelContext(const DeviceState &state, std::shared_ptr asCtx, size_t numEntries); diff --git a/app/src/main/cpp/skyline/soc/gm20b/gpfifo.cpp b/app/src/main/cpp/skyline/soc/gm20b/gpfifo.cpp index 1c327b98..bf84cff8 100644 --- a/app/src/main/cpp/skyline/soc/gm20b/gpfifo.cpp +++ b/app/src/main/cpp/skyline/soc/gm20b/gpfifo.cpp @@ -112,6 +112,9 @@ namespace skyline::soc::gm20b { case SubchannelId::ThreeD: channelCtx.maxwell3D->CallMethod(method, argument); break; + case SubchannelId::Inline2Mem: + channelCtx.inline2Memory.CallMethod(method, argument); + break; default: Logger::Warn("Called method 0x{:X} in unimplemented engine 0x{:X}, args: 0x{:X}", method, subChannel, argument); break; @@ -123,6 +126,9 @@ namespace skyline::soc::gm20b { case SubchannelId::ThreeD: channelCtx.maxwell3D->CallMethodBatchNonInc(method, arguments); break; + case SubchannelId::Inline2Mem: + channelCtx.inline2Memory.CallMethodBatchNonInc(method, arguments); + break; default: Logger::Warn("Called method 0x{:X} in unimplemented engine 0x{:X} with batch args", method, subChannel); break;