Changes

Jump to navigation Jump to search
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 trigger GSP processing when the total commands field is value 1.
+
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?, bit7 = fatal error)
+
| Flags (bit0 = completed, bit7 = fatal error)
 
|-
 
|-
 
| 3
 
| 3
| ? (bit0 = set flags.bit0)
+
| 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 GX command which failed
+
| Result code for the last command which failed
 
|}
 
|}
   Line 139: Line 139:  
|-
 
|-
 
| 2
 
| 2
| ? (bit0 = set queue.flags.bit0 after processing)
+
| 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
| u8 CommandID is 0x00
+
| Command header (ID = 0x00)
 
|-
 
|-
 
| 1
 
| 1
Line 187: Line 187:  
|-
 
|-
 
| 0
 
| 0
| u8 CommandID is 0x01
+
| Command header (ID = 0x01)
 
|-
 
|-
 
| 1
 
| 1
Line 215: Line 215:  
|-
 
|-
 
| 0
 
| 0
| u8 CommandID is 0x02
+
| Command header (ID = 0x02)
 
|-
 
|-
 
| 1
 
| 1
Line 252: Line 252:  
|-
 
|-
 
| 0
 
| 0
| u8 CommandID is 0x03
+
| Command header (ID = 0x03)
 
|-
 
|-
 
| 1
 
| 1
Line 289: Line 289:  
|-
 
|-
 
| 0
 
| 0
| u8 CommandID is 0x04
+
| Command header (ID = 0x04)
 
|-
 
|-
 
| 1
 
| 1
Line 323: Line 323:  
|-
 
|-
 
| 0
 
| 0
| u8 CommandID is 0x05
+
| Command header (ID = 0x05)
 
|-
 
|-
 
| 1
 
| 1
67

edits

Navigation menu