summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Tony Wasserka2014-07-22 13:04:16 +0200
committerGravatar Tony Wasserka2014-07-23 00:44:31 +0200
commit4b141791ed8bb4c1d80b239a1195897876fa30bb (patch)
tree6596840bc780f9dba6e54946e8e5837a974e9b75 /src
parentGSP: Clean up GX command processing a lot and treat command id as a u8 rather... (diff)
downloadyuzu-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.cpp8
-rw-r--r--src/core/hle/service/gsp.h8
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 {
15enum class GXCommandId : u32 { 15enum 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