Changes

Jump to navigation Jump to search
2,050 bytes added ,  19:26, 30 January 2013
Created page with "This page describes the GX commands which can be written to GSP shared memory. After writing the command data to GSP shared memory, [[GSPGP..."
This page describes the GX commands which can be written to GSP [[GSPGPU:RegisterInterruptRelayQueue|shared]] memory. After writing the command data to GSP shared memory, [[GSPGPU:TriggerCmdReqQueue|TriggerCmdReqQueue]] must be used to trigger GSP processing for the command.

=Command Buffer Header=
{| class="wikitable" border="1"
|-
! Index Byte
! Description
|-
| 0
| Command Index, must be <=15
|-
| 1
| Must not be value 0
|-
| 2
| Must not be value 1
|-
| 3
| Bit0 must not be set
|}

The command buffer is located at sharedmem + 0x800 + [[GSPGPU:RegisterInterruptRelayQueue|threadindex]]*0x200.

=Command Header=
{| class="wikitable" border="1"
|-
! Index Byte
! Description
|-
| 0
| Command ID
|-
| 2-1
| ?
|-
| 3
| When non-zero GSP module may check flags for the specified cmdID, command handling is aborted when the flags are set.
|}

The command is located at cmdbuf + 0x20 + cmdindex*0x20, the size of each command is 0x20-bytes. The command parameters are located at command+4. Application vaddrs specified in command parameters can usually be located in either the application GSP heap at 0x14000000 or VRAM.

=Commands=

==GX Command 0==
{| class="wikitable" border="1"
|-
! Index Word
! Description
|-
| 0
| u8 CommandID is 0x00
|}

This command is normally used to DMA data from the application GSP heap at 0x14000000 to VRAM.

==GX Command 1==
{| class="wikitable" border="1"
|-
! Index Word
! Description
|-
| 0
| u8 CommandID is 0x01
|}

==GX Command 2==
{| class="wikitable" border="1"
|-
! Index Word
! Description
|-
| 0
| u8 CommandID is 0x02
|}

==GX Command 3==
{| class="wikitable" border="1"
|-
! Index Word
! Description
|-
| 0
| u8 CommandID is 0x03
|}

==GX Command 4==
{| class="wikitable" border="1"
|-
! Index Word
! Description
|-
| 0
| u8 CommandID is 0x04
|}

==GX Command 5==
{| class="wikitable" border="1"
|-
! Index Word
! Description
|-
| 0
| u8 CommandID is 0x05
|}

The application buffer addresses specified in the parameters are used with [[SVC|svcFlushProcessDataCache]].

Navigation menu