Line 10:
Line 10:
| 0x00010082
| 0x00010082
|
|
−
|
+
| Yes
| [[GSPGPU:WriteHWRegs|WriteHWRegs]]
| [[GSPGPU:WriteHWRegs|WriteHWRegs]]
|-
|-
| 0x00020084
| 0x00020084
|
|
−
|
+
| Yes
| [[GSPGPU:WriteHWRegsWithMask|WriteHWRegsWithMask]]
| [[GSPGPU:WriteHWRegsWithMask|WriteHWRegsWithMask]]
|-
|-
| 0x00030082
| 0x00030082
|
|
−
|
+
| Yes
| [[GSPGPU:WriteHWRegRepeat|WriteHWRegRepeat]]
| [[GSPGPU:WriteHWRegRepeat|WriteHWRegRepeat]]
|-
|-
| 0x00040080
| 0x00040080
|
|
−
|
+
| Yes
| [[GSPGPU:ReadHWRegs|ReadHWRegs]]
| [[GSPGPU:ReadHWRegs|ReadHWRegs]]
|-
|-
| 0x00050200
| 0x00050200
|
|
−
|
+
| Yes
| [[GSPGPU:SetBufferSwap|SetBufferSwap]]
| [[GSPGPU:SetBufferSwap|SetBufferSwap]]
|-
|-
| 0x00060082
| 0x00060082
|
|
−
|
+
| No
| SetCommandList (Stubbed)
| SetCommandList (Stubbed)
|-
|-
| 0x000700C2
| 0x000700C2
|
|
−
|
+
| No
| RequestDma (Stubbed)
| RequestDma (Stubbed)
|-
|-
Line 55:
Line 55:
| 0x000A0044
| 0x000A0044
|
|
−
|
+
| No
| RegisterInterruptEvents
| RegisterInterruptEvents
|-
|-
| 0x000B0040
| 0x000B0040
|
|
−
|
+
| See below
| [[GSPGPU:SetLcdForceBlack|SetLcdForceBlack]]
| [[GSPGPU:SetLcdForceBlack|SetLcdForceBlack]]
|-
|-
| 0x000C0000
| 0x000C0000
|
|
−
|
+
| No
| [[GSPGPU:TriggerCmdReqQueue|TriggerCmdReqQueue]]
| [[GSPGPU:TriggerCmdReqQueue|TriggerCmdReqQueue]]
|-
|-
| 0x000D0140
| 0x000D0140
|
|
−
|
+
| No
| SetDisplayTransfer (Stubbed)
| SetDisplayTransfer (Stubbed)
|-
|-
| 0x000E0180
| 0x000E0180
|
|
−
|
+
| No
| SetTextureCopy (Stubbed)
| SetTextureCopy (Stubbed)
|-
|-
| 0x000F0200
| 0x000F0200
|
|
−
|
+
| No
| SetMemoryFill (Stubbed)
| SetMemoryFill (Stubbed)
|-
|-
| 0x00100040
| 0x00100040
|
|
−
|
+
| No
| SetAxiConfigQoSMode
| SetAxiConfigQoSMode
|-
|-
| 0x00110040
| 0x00110040
|
|
−
|
+
| No
| SetPerfLogMode
| SetPerfLogMode
|-
|-
| 0x00120000
| 0x00120000
|
|
−
|
+
| No
| GetPerfLog
| GetPerfLog
|-
|-
| 0x00130042
| 0x00130042
|
|
−
|
+
| No
| [[GSPGPU:RegisterInterruptRelayQueue|RegisterInterruptRelayQueue]]
| [[GSPGPU:RegisterInterruptRelayQueue|RegisterInterruptRelayQueue]]
|-
|-
| 0x00140000
| 0x00140000
|
|
−
|
+
| No
| [[GSPGPU:UnregisterInterruptRelayQueue|UnregisterInterruptRelayQueue]]
| [[GSPGPU:UnregisterInterruptRelayQueue|UnregisterInterruptRelayQueue]]
|-
|-
| 0x00150002
| 0x00150002
|
|
−
|
+
| No
| [[GSPGPU:TryAcquireRight|TryAcquireRight]]
| [[GSPGPU:TryAcquireRight|TryAcquireRight]]
|-
|-
| 0x00160042
| 0x00160042
|
|
−
|
+
| No
| [[GSPGPU:AcquireRight|AcquireRight]]
| [[GSPGPU:AcquireRight|AcquireRight]]
|-
|-
| 0x00170000
| 0x00170000
|
|
−
|
+
| No
| [[GSPGPU:ReleaseRight|ReleaseRight]]
| [[GSPGPU:ReleaseRight|ReleaseRight]]
|-
|-
| 0x00180000
| 0x00180000
|
|
−
|
+
| No
| [[GSPGPU:ImportDisplayCaptureInfo|ImportDisplayCaptureInfo]]
| [[GSPGPU:ImportDisplayCaptureInfo|ImportDisplayCaptureInfo]]
|-
|-
| 0x00190000
| 0x00190000
|
|
−
|
+
| See below
| [[GSPGPU:SaveVramSysArea|SaveVramSysArea]]
| [[GSPGPU:SaveVramSysArea|SaveVramSysArea]]
|-
|-
| 0x001A0000
| 0x001A0000
|
|
−
|
+
| See below
| [[GSPGPU:RestoreVramSysArea|RestoreVramSysArea]]
| [[GSPGPU:RestoreVramSysArea|RestoreVramSysArea]]
|-
|-
| 0x001B0000
| 0x001B0000
|
|
−
|
+
| Yes
| [[GSPGPU:ResetGpuCore|ResetGpuCore]]
| [[GSPGPU:ResetGpuCore|ResetGpuCore]]
|-
|-
| 0x001C0040
| 0x001C0040
|
|
−
|
+
| No
| [[GSPGPU:SetLedForceOff|SetLedForceOff]]
| [[GSPGPU:SetLedForceOff|SetLedForceOff]]
|-
|-
| 0x001D0040
| 0x001D0040
|
|
−
|
+
| No
| SetTestCommand (Stubbed)
| SetTestCommand (Stubbed)
|-
|-
| 0x001E0080
| 0x001E0080
|
|
−
|
+
| No
| SetInternalPriorities
| SetInternalPriorities
|-
|-
| 0x001F0082
| 0x001F0082
| [[8.0.0-18]]
| [[8.0.0-18]]
−
|
+
| No
| [[GSPGPU:StoreDataCache|StoreDataCache]]
| [[GSPGPU:StoreDataCache|StoreDataCache]]
|}
|}
The GSP module starts a thread for handling commands for each service session, a maximum of 4 processes can use this service at once. Official applications have an optional code-path which [[GSPGPU:WriteHWRegs|writes]] to registers during initialization, this is normally not used however.
The GSP module starts a thread for handling commands for each service session, a maximum of 4 processes can use this service at once. Official applications have an optional code-path which [[GSPGPU:WriteHWRegs|writes]] to registers during initialization, this is normally not used however.
+
+
If a process has acquired rights, attempting to [[GSPGPU:SetLcdForceBlack|set LCDs to black]] from another process will fail.
+
Saving/restoring VRAM requires bit0 of process [[GSPGPU:RegisterInterruptRelayQueue|flags]] to be set.
= GSP service "gsp::Lcd" =
= GSP service "gsp::Lcd" =