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  | ||