diff options
Diffstat (limited to 'src/core/hle/service/gsp.cpp')
| -rw-r--r-- | src/core/hle/service/gsp.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/core/hle/service/gsp.cpp b/src/core/hle/service/gsp.cpp index e2b0a48a7..635f50a53 100644 --- a/src/core/hle/service/gsp.cpp +++ b/src/core/hle/service/gsp.cpp | |||
| @@ -173,7 +173,7 @@ void ExecuteCommand(const Command& command) { | |||
| 173 | case CommandId::SET_COMMAND_LIST_LAST: | 173 | case CommandId::SET_COMMAND_LIST_LAST: |
| 174 | { | 174 | { |
| 175 | auto& params = command.set_command_list_last; | 175 | auto& params = command.set_command_list_last; |
| 176 | WriteGPURegister(GPU_REG_INDEX(command_processor_config.address), params.address >> 3); | 176 | WriteGPURegister(GPU_REG_INDEX(command_processor_config.address), Memory::VirtualToPhysicalAddress(params.address) >> 3); |
| 177 | WriteGPURegister(GPU_REG_INDEX(command_processor_config.size), params.size >> 3); | 177 | WriteGPURegister(GPU_REG_INDEX(command_processor_config.size), params.size >> 3); |
| 178 | 178 | ||
| 179 | // TODO: Not sure if we are supposed to always write this .. seems to trigger processing though | 179 | // TODO: Not sure if we are supposed to always write this .. seems to trigger processing though |
| @@ -193,13 +193,13 @@ void ExecuteCommand(const Command& command) { | |||
| 193 | case CommandId::SET_MEMORY_FILL: | 193 | case CommandId::SET_MEMORY_FILL: |
| 194 | { | 194 | { |
| 195 | auto& params = command.memory_fill; | 195 | auto& params = command.memory_fill; |
| 196 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[0].address_start), params.start1 >> 3); | 196 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[0].address_start), Memory::VirtualToPhysicalAddress(params.start1) >> 3); |
| 197 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[0].address_end), params.end1 >> 3); | 197 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[0].address_end), Memory::VirtualToPhysicalAddress(params.end1) >> 3); |
| 198 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[0].size), params.end1 - params.start1); | 198 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[0].size), params.end1 - params.start1); |
| 199 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[0].value), params.value1); | 199 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[0].value), params.value1); |
| 200 | 200 | ||
| 201 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[1].address_start), params.start2 >> 3); | 201 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[1].address_start), Memory::VirtualToPhysicalAddress(params.start2) >> 3); |
| 202 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[1].address_end), params.end2 >> 3); | 202 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[1].address_end), Memory::VirtualToPhysicalAddress(params.end2) >> 3); |
| 203 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[1].size), params.end2 - params.start2); | 203 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[1].size), params.end2 - params.start2); |
| 204 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[1].value), params.value2); | 204 | WriteGPURegister(GPU_REG_INDEX(memory_fill_config[1].value), params.value2); |
| 205 | break; | 205 | break; |
| @@ -208,8 +208,8 @@ void ExecuteCommand(const Command& command) { | |||
| 208 | case CommandId::SET_DISPLAY_TRANSFER: | 208 | case CommandId::SET_DISPLAY_TRANSFER: |
| 209 | { | 209 | { |
| 210 | auto& params = command.image_copy; | 210 | auto& params = command.image_copy; |
| 211 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.input_address), params.in_buffer_address >> 3); | 211 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.input_address), Memory::VirtualToPhysicalAddress(params.in_buffer_address) >> 3); |
| 212 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.output_address), params.out_buffer_address >> 3); | 212 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.output_address), Memory::VirtualToPhysicalAddress(params.out_buffer_address) >> 3); |
| 213 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.input_size), params.in_buffer_size); | 213 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.input_size), params.in_buffer_size); |
| 214 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.output_size), params.out_buffer_size); | 214 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.output_size), params.out_buffer_size); |
| 215 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.flags), params.flags); | 215 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.flags), params.flags); |
| @@ -230,8 +230,8 @@ void ExecuteCommand(const Command& command) { | |||
| 230 | case CommandId::SET_TEXTURE_COPY: | 230 | case CommandId::SET_TEXTURE_COPY: |
| 231 | { | 231 | { |
| 232 | auto& params = command.image_copy; | 232 | auto& params = command.image_copy; |
| 233 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.input_address), params.in_buffer_address >> 3); | 233 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.input_address), Memory::VirtualToPhysicalAddress(params.in_buffer_address) >> 3); |
| 234 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.output_address), params.out_buffer_address >> 3); | 234 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.output_address), Memory::VirtualToPhysicalAddress(params.out_buffer_address) >> 3); |
| 235 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.input_size), params.in_buffer_size); | 235 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.input_size), params.in_buffer_size); |
| 236 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.output_size), params.out_buffer_size); | 236 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.output_size), params.out_buffer_size); |
| 237 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.flags), params.flags); | 237 | WriteGPURegister(GPU_REG_INDEX(display_transfer_config.flags), params.flags); |