Browse Source

nv_services: Create GPU channels correctly

nce_cpp
Fernando Sahmkow 7 years ago
committed by FernandoS27
parent
commit
5ff576460e
  1. 6
      src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
  2. 1
      src/core/hle/service/nvdrv/devices/nvhost_gpu.h

6
src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp

@ -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(), &params, output.size());
return 0;
}

1
src/core/hle/service/nvdrv/devices/nvhost_gpu.h

@ -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
Loading…
Cancel
Save