Address feedback

This commit is contained in:
Feng Chen 2021-12-03 12:31:07 +08:00 committed by vonchenplus
parent 2c47f8aa18
commit 5462485cc3
5 changed files with 27 additions and 17 deletions

View file

@ -20,8 +20,12 @@ NvResult nvhost_nvdec::Ioctl1(DeviceFD fd, Ioctl command, const std::vector<u8>&
switch (command.group) {
case 0x0:
switch (command.cmd) {
case 0x1:
case 0x1: {
if (!fd_to_id.contains(fd)) {
fd_to_id[fd] = next_id++;
}
return Submit(fd, input, output);
}
case 0x2:
return GetSyncpoint(input, output);
case 0x3:
@ -62,15 +66,13 @@ NvResult nvhost_nvdec::Ioctl3(DeviceFD fd, Ioctl command, const std::vector<u8>&
return NvResult::NotImplemented;
}
void nvhost_nvdec::OnOpen(DeviceFD fd) {
static u32 next_id{};
fd_to_id[fd] = next_id++;
}
void nvhost_nvdec::OnOpen(DeviceFD fd) {}
void nvhost_nvdec::OnClose(DeviceFD fd) {
LOG_INFO(Service_NVDRV, "NVDEC video stream ended");
if (fd_to_id.find(fd) != fd_to_id.end()) {
system.GPU().ClearCdmaInstance(fd_to_id[fd]);
const auto iter = fd_to_id.find(fd);
if (iter != fd_to_id.end()) {
system.GPU().ClearCdmaInstance(iter->second);
}
}

View file

@ -24,6 +24,9 @@ public:
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
private:
u32 next_id{};
};
} // namespace Service::Nvidia::Devices

View file

@ -21,6 +21,9 @@ NvResult nvhost_vic::Ioctl1(DeviceFD fd, Ioctl command, const std::vector<u8>& i
case 0x0:
switch (command.cmd) {
case 0x1:
if (!fd_to_id.contains(fd)) {
fd_to_id[fd] = next_id++;
}
return Submit(fd, input, output);
case 0x2:
return GetSyncpoint(input, output);
@ -62,14 +65,12 @@ NvResult nvhost_vic::Ioctl3(DeviceFD fd, Ioctl command, const std::vector<u8>& i
return NvResult::NotImplemented;
}
void nvhost_vic::OnOpen(DeviceFD fd) {
static u32 next_id{};
fd_to_id[fd] = next_id++;
}
void nvhost_vic::OnOpen(DeviceFD fd) {}
void nvhost_vic::OnClose(DeviceFD fd) {
if (fd_to_id.find(fd) != fd_to_id.end()) {
system.GPU().ClearCdmaInstance(fd_to_id[fd]);
const auto iter = fd_to_id.find(fd);
if (iter != fd_to_id.end()) {
system.GPU().ClearCdmaInstance(iter->second);
}
}

View file

@ -23,5 +23,8 @@ public:
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
private:
u32 next_id{};
};
} // namespace Service::Nvidia::Devices