GSP: Add a few comments.

master
Tony Wasserka 2014-07-22 13:04:16 +07:00
parent 9b0d0c81a0
commit 4b141791ed
2 changed files with 15 additions and 1 deletions

@ -171,6 +171,9 @@ void TriggerCmdReqQueue(Service::Interface* self) {
command.dma_request.size); command.dma_request.size);
break; break;
// ctrulib homebrew sends all relevant command list data with this command,
// hence we do all "interesting" stuff here and do nothing in SET_COMMAND_LIST_FIRST.
// TODO: This will need some rework in the future.
case GXCommandId::SET_COMMAND_LIST_LAST: case GXCommandId::SET_COMMAND_LIST_LAST:
{ {
auto& params = command.set_command_list_last; auto& params = command.set_command_list_last;
@ -186,6 +189,8 @@ void TriggerCmdReqQueue(Service::Interface* self) {
break; break;
} }
// It's assumed that the two "blocks" behave equivalently.
// Presumably this is done simply to allow two memory fills to run in parallel.
case GXCommandId::SET_MEMORY_FILL: case GXCommandId::SET_MEMORY_FILL:
{ {
auto& params = command.memory_fill; auto& params = command.memory_fill;
@ -218,9 +223,10 @@ void TriggerCmdReqQueue(Service::Interface* self) {
break; break;
} }
// TODO: Figure out what exactly SET_COMMAND_LIST_FIRST and SET_COMMAND_LIST_LAST
// are supposed to do.
case GXCommandId::SET_COMMAND_LIST_FIRST: case GXCommandId::SET_COMMAND_LIST_FIRST:
{ {
// TODO
break; break;
} }

@ -15,9 +15,17 @@ namespace GSP_GPU {
enum class GXCommandId : u32 { enum class GXCommandId : u32 {
REQUEST_DMA = 0x00, REQUEST_DMA = 0x00,
SET_COMMAND_LIST_LAST = 0x01, SET_COMMAND_LIST_LAST = 0x01,
// Fills a given memory range with a particular value
SET_MEMORY_FILL = 0x02, SET_MEMORY_FILL = 0x02,
// Copies an image and optionally performs color-conversion or scaling.
// This is highly similar to the GameCube's EFB copy feature
SET_DISPLAY_TRANSFER = 0x03, SET_DISPLAY_TRANSFER = 0x03,
// Conceptionally similar to SET_DISPLAY_TRANSFER and presumable uses the same hardware path
SET_TEXTURE_COPY = 0x04, SET_TEXTURE_COPY = 0x04,
SET_COMMAND_LIST_FIRST = 0x05, SET_COMMAND_LIST_FIRST = 0x05,
}; };