diff options
| author | 2014-07-22 13:04:16 +0200 | |
|---|---|---|
| committer | 2014-07-23 00:44:31 +0200 | |
| commit | 4b141791ed8bb4c1d80b239a1195897876fa30bb (patch) | |
| tree | 6596840bc780f9dba6e54946e8e5837a974e9b75 /src | |
| parent | GSP: Clean up GX command processing a lot and treat command id as a u8 rather... (diff) | |
| download | yuzu-4b141791ed8bb4c1d80b239a1195897876fa30bb.tar.gz yuzu-4b141791ed8bb4c1d80b239a1195897876fa30bb.tar.xz yuzu-4b141791ed8bb4c1d80b239a1195897876fa30bb.zip | |
GSP: Add a few comments.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/gsp.cpp | 8 | ||||
| -rw-r--r-- | src/core/hle/service/gsp.h | 8 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/core/hle/service/gsp.cpp b/src/core/hle/service/gsp.cpp index 05753fa2c..b20203e27 100644 --- a/src/core/hle/service/gsp.cpp +++ b/src/core/hle/service/gsp.cpp | |||
| @@ -171,6 +171,9 @@ void TriggerCmdReqQueue(Service::Interface* self) { | |||
| 171 | command.dma_request.size); | 171 | command.dma_request.size); |
| 172 | break; | 172 | break; |
| 173 | 173 | ||
| 174 | // ctrulib homebrew sends all relevant command list data with this command, | ||
| 175 | // hence we do all "interesting" stuff here and do nothing in SET_COMMAND_LIST_FIRST. | ||
| 176 | // TODO: This will need some rework in the future. | ||
| 174 | case GXCommandId::SET_COMMAND_LIST_LAST: | 177 | case GXCommandId::SET_COMMAND_LIST_LAST: |
| 175 | { | 178 | { |
| 176 | auto& params = command.set_command_list_last; | 179 | auto& params = command.set_command_list_last; |
| @@ -186,6 +189,8 @@ void TriggerCmdReqQueue(Service::Interface* self) { | |||
| 186 | break; | 189 | break; |
| 187 | } | 190 | } |
| 188 | 191 | ||
| 192 | // It's assumed that the two "blocks" behave equivalently. | ||
| 193 | // Presumably this is done simply to allow two memory fills to run in parallel. | ||
| 189 | case GXCommandId::SET_MEMORY_FILL: | 194 | case GXCommandId::SET_MEMORY_FILL: |
| 190 | { | 195 | { |
| 191 | auto& params = command.memory_fill; | 196 | auto& params = command.memory_fill; |
| @@ -218,9 +223,10 @@ void TriggerCmdReqQueue(Service::Interface* self) { | |||
| 218 | break; | 223 | break; |
| 219 | } | 224 | } |
| 220 | 225 | ||
| 226 | // TODO: Figure out what exactly SET_COMMAND_LIST_FIRST and SET_COMMAND_LIST_LAST | ||
| 227 | // are supposed to do. | ||
| 221 | case GXCommandId::SET_COMMAND_LIST_FIRST: | 228 | case GXCommandId::SET_COMMAND_LIST_FIRST: |
| 222 | { | 229 | { |
| 223 | // TODO | ||
| 224 | break; | 230 | break; |
| 225 | } | 231 | } |
| 226 | 232 | ||
diff --git a/src/core/hle/service/gsp.h b/src/core/hle/service/gsp.h index f36afb697..a83cb4846 100644 --- a/src/core/hle/service/gsp.h +++ b/src/core/hle/service/gsp.h | |||
| @@ -15,9 +15,17 @@ namespace GSP_GPU { | |||
| 15 | enum class GXCommandId : u32 { | 15 | enum class GXCommandId : u32 { |
| 16 | REQUEST_DMA = 0x00, | 16 | REQUEST_DMA = 0x00, |
| 17 | SET_COMMAND_LIST_LAST = 0x01, | 17 | SET_COMMAND_LIST_LAST = 0x01, |
| 18 | |||
| 19 | // Fills a given memory range with a particular value | ||
| 18 | SET_MEMORY_FILL = 0x02, | 20 | SET_MEMORY_FILL = 0x02, |
| 21 | |||
| 22 | // Copies an image and optionally performs color-conversion or scaling. | ||
| 23 | // This is highly similar to the GameCube's EFB copy feature | ||
| 19 | SET_DISPLAY_TRANSFER = 0x03, | 24 | SET_DISPLAY_TRANSFER = 0x03, |
| 25 | |||
| 26 | // Conceptionally similar to SET_DISPLAY_TRANSFER and presumable uses the same hardware path | ||
| 20 | SET_TEXTURE_COPY = 0x04, | 27 | SET_TEXTURE_COPY = 0x04, |
| 28 | |||
| 21 | SET_COMMAND_LIST_FIRST = 0x05, | 29 | SET_COMMAND_LIST_FIRST = 0x05, |
| 22 | }; | 30 | }; |
| 23 | 31 | ||