diff --git a/app/src/main/cpp/skyline/services/nvdrv/devices/nvhost/host1x_channel.cpp b/app/src/main/cpp/skyline/services/nvdrv/devices/nvhost/host1x_channel.cpp index ebc3db4a..66f86108 100644 --- a/app/src/main/cpp/skyline/services/nvdrv/devices/nvhost/host1x_channel.cpp +++ b/app/src/main/cpp/skyline/services/nvdrv/devices/nvhost/host1x_channel.cpp @@ -3,7 +3,6 @@ #include #include -#include #include "host1x_channel.h" namespace skyline::service::nvdrv::device::nvhost { @@ -39,10 +38,12 @@ namespace skyline::service::nvdrv::device::nvhost { for (size_t i{}; i < syncpointIncrs.size(); i++) { const auto &incr{syncpointIncrs[i]}; + u32 max{core.syncpointManager.IncrementSyncpointMaxExt(incr.syncpointId, incr.numIncrs)}; + + // Increment syncpoints on the CPU to avoid needing to pass through the emulated nvdec code which currently does nothing for (size_t j{}; j < incr.numIncrs; j++) state.soc->host1x.syncpoints[incr.syncpointId].Increment(); - u32 max{core.syncpointManager.IncrementSyncpointMaxExt(incr.syncpointId, incr.numIncrs)}; if (i < fenceThresholds.size()) fenceThresholds[i] = max; } @@ -56,7 +57,8 @@ namespace skyline::service::nvdrv::device::nvhost { Logger::Debug("Submit gather, CPU address: 0x{:X}, words: 0x{:X}", gatherAddress, cmdBuf.words); span gather(reinterpret_cast(gatherAddress), cmdBuf.words); - // state.soc->host1x.channels[static_cast(channelType)].Push(gather); + // Skip submitting the cmdbufs as no functionality is implemented + // state.soc->host1x.channels[static_cast(channelType)].Push(gather); } return PosixResult::Success;