diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp | 10 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp index d5558f29f..be6b88f98 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp | |||
| @@ -77,9 +77,13 @@ u32 nvhost_ctrl_gpu::GetCharacteristics(const std::vector<u8>& input, std::vecto | |||
| 77 | u32 nvhost_ctrl_gpu::GetTPCMasks(const std::vector<u8>& input, std::vector<u8>& output) { | 77 | u32 nvhost_ctrl_gpu::GetTPCMasks(const std::vector<u8>& input, std::vector<u8>& output) { |
| 78 | IoctlGpuGetTpcMasksArgs params{}; | 78 | IoctlGpuGetTpcMasksArgs params{}; |
| 79 | std::memcpy(¶ms, input.data(), input.size()); | 79 | std::memcpy(¶ms, input.data(), input.size()); |
| 80 | NGLOG_WARNING(Service_NVDRV, "(STUBBED) called, mask=0x{:X}, mask_buf_addr=0x{:X}", | 80 | NGLOG_INFO(Service_NVDRV, "called, mask=0x{:X}, mask_buf_addr=0x{:X}", params.mask_buf_size, |
| 81 | params.mask_buf_size, params.mask_buf_addr); | 81 | params.mask_buf_addr); |
| 82 | params.unk = 0xcafe; // TODO(ogniK): Needs to be non 0, what does this actually do? | 82 | // TODO(ogniK): Confirm value on hardware |
| 83 | if (params.mask_buf_size) | ||
| 84 | params.tpc_mask_size = 4 * 1; // 4 * num_gpc | ||
| 85 | else | ||
| 86 | params.tpc_mask_size = 0; | ||
| 83 | std::memcpy(output.data(), ¶ms, sizeof(params)); | 87 | std::memcpy(output.data(), ¶ms, sizeof(params)); |
| 84 | return 0; | 88 | return 0; |
| 85 | } | 89 | } |
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h index 31040cdbe..2d43598b1 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h +++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h | |||
| @@ -86,7 +86,7 @@ private: | |||
| 86 | /// [in] pointer to TPC mask buffer. It will receive one 32-bit TPC mask per GPC or 0 if | 86 | /// [in] pointer to TPC mask buffer. It will receive one 32-bit TPC mask per GPC or 0 if |
| 87 | /// GPC is not enabled or not present. This parameter is ignored if mask_buf_size is 0. | 87 | /// GPC is not enabled or not present. This parameter is ignored if mask_buf_size is 0. |
| 88 | u64_le mask_buf_addr; | 88 | u64_le mask_buf_addr; |
| 89 | u64_le unk; // Nintendo add this? | 89 | u64_le tpc_mask_size; // Nintendo add this? |
| 90 | }; | 90 | }; |
| 91 | static_assert(sizeof(IoctlGpuGetTpcMasksArgs) == 24, | 91 | static_assert(sizeof(IoctlGpuGetTpcMasksArgs) == 24, |
| 92 | "IoctlGpuGetTpcMasksArgs is incorrect size"); | 92 | "IoctlGpuGetTpcMasksArgs is incorrect size"); |