@@ -119,8 +119,10 @@ u32 nvhost_gpu::AllocGPFIFOEx2(const std::vector<u8>& input, std::vector<u8>& ou
params.num_entries, params.flags, params.unk0, params.unk1, params.unk2,
params.unk3);
- params.fence_out.id = 0;
- params.fence_out.value = 0;
+ auto& gpu = Core::System::GetInstance().GPU();
+ params.fence_out.id = channels;
+ params.fence_out.value = gpu.GetSyncpointValue(channels);
+ channels++;
std::memcpy(output.data(), ¶ms, output.size());
return 0;
}
@@ -190,6 +190,7 @@ private:
u32 ChannelSetTimeout(const std::vector<u8>& input, std::vector<u8>& output);
std::shared_ptr<nvmap> nvmap_dev;
+ u32 channels{};
};
} // namespace Service::Nvidia::Devices