GSP Shared Memory: Difference between revisions
m Document PPF behaviour |
Command queue stuff |
||
Line 100: | Line 100: | ||
The command queue is located at sharedMemBase + 0x800 + (clientID * 0x200). It consists of an header followed by at most 15 command entries. Each command entry is of size 0x20 and has an header followed by command specific parameters. | The command queue is located at sharedMemBase + 0x800 + (clientID * 0x200). It consists of an header followed by at most 15 command entries. Each command entry is of size 0x20 and has an header followed by command specific parameters. | ||
After adding a command, [[GSPGPU:TriggerCmdReqQueue|TriggerCmdReqQueue]] must be used to | After adding a command, [[GSPGPU:TriggerCmdReqQueue|TriggerCmdReqQueue]] must be used to start command processing (official code does so when the total commands field is 1). | ||
== Command Queue Header == | == Command Queue Header == | ||
Line 116: | Line 116: | ||
|- | |- | ||
| 2 | | 2 | ||
| Flags (bit0 = completed | | Flags (bit0 = completed, bit7 = fatal error) | ||
|- | |- | ||
| 3 | | 3 | ||
| | | When bit0 is set, further processing of commands is halted until the client resets the flag and calls [[GSPGPU:TriggerCmdReqQueue|TriggerCmdReqQueue]] | ||
|- | |- | ||
| 4 | | 4 | ||
| Result code for the last | | Result code for the last command which failed | ||
|} | |} | ||
Line 139: | Line 139: | ||
|- | |- | ||
| 2 | | 2 | ||
| | | When bit0 is set, GSP stops processing further commands (can be used for packing together sets of commands) | ||
|- | |- | ||
| 3 | | 3 | ||
Line 159: | Line 159: | ||
|- | |- | ||
| 0 | | 0 | ||
| | | Command header (ID = 0x00) | ||
|- | |- | ||
| 1 | | 1 | ||
Line 187: | Line 187: | ||
|- | |- | ||
| 0 | | 0 | ||
| | | Command header (ID = 0x01) | ||
|- | |- | ||
| 1 | | 1 | ||
Line 215: | Line 215: | ||
|- | |- | ||
| 0 | | 0 | ||
| | | Command header (ID = 0x02) | ||
|- | |- | ||
| 1 | | 1 | ||
Line 252: | Line 252: | ||
|- | |- | ||
| 0 | | 0 | ||
| | | Command header (ID = 0x03) | ||
|- | |- | ||
| 1 | | 1 | ||
Line 289: | Line 289: | ||
|- | |- | ||
| 0 | | 0 | ||
| | | Command header (ID = 0x04) | ||
|- | |- | ||
| 1 | | 1 | ||
Line 323: | Line 323: | ||
|- | |- | ||
| 0 | | 0 | ||
| | | Command header (ID = 0x05) | ||
|- | |- | ||
| 1 | | 1 |