Difference between revisions of "GSPGPU:SetBufferSwap"

From 3dbrew
Jump to navigation Jump to search
(Created page with "=Request= {| class="wikitable" border="1" |- ! Index Word ! Description |- | 0 | Header code [0x00050200] |- | 1 | Screen ID: 0=main, 1=sub |- | 2 | Active framebuffer: 0=first...")
 
(Removed FBInfo)
 
(8 intermediate revisions by 4 users not shown)
Line 9: Line 9:
 
|-
 
|-
 
| 1
 
| 1
| Screen ID: 0=main, 1=sub
+
| Screen ID (0 = top, 1 = bottom)
 
|-
 
|-
| 2
+
| 2-8
| Active framebuffer: 0=first, 1=second
+
| [[GSP_Shared_Memory#Framebuffer_info_structure|Framebuffer info structure]]
|-
 
| 3
 
| [[LCD#Framebuffers|Framebuffer]] virtual address, for the main screen this is the 3D left framebuffer
 
|-
 
| 4
 
| For the main screen: 3D right framebuffer address
 
|-
 
| 5
 
| Value for [[LCD|0x1EF00X90]], controls framebuffer width
 
|-
 
| 6
 
| ?
 
|-
 
| 7
 
| Value for [[LCD|0x1EF00X78]], controls which framebuffer is displayed
 
 
|}
 
|}
  
Line 44: Line 29:
  
 
=Description=
 
=Description=
This sets GSP state for the LCD framebuffers, and other state as well. When the value of [[LCD]] register 0x1EF00X54 is >0x54, the GSP state for the specified screenID is immediately written to the LCD registers.
+
This sets GSP state for the LCD framebuffers. When the value of [[GPU/External_Registers#LCD_Source_Framebuffer_Setup|VCount]] (offset 0x54) is greater than a certain constant, the GSP state for the specified screen is immediately written to the LCD registers. This constant is 0x52 on GSP for [[11.16.0-48|11.16.0-48]], though it used to be 0x54.
 +
 
 +
This command should only be used when directly writing to the framebuffers; when using the GPU the framebuffer info stored in [[GSP_Shared_Memory#Framebuffer_info|GSP shared memory]] should be used instead.

Latest revision as of 21:35, 13 October 2023

Request[edit]

Index Word Description
0 Header code [0x00050200]
1 Screen ID (0 = top, 1 = bottom)
2-8 Framebuffer info structure

Response[edit]

Index Word Description
0 Header code
1 Result code

Description[edit]

This sets GSP state for the LCD framebuffers. When the value of VCount (offset 0x54) is greater than a certain constant, the GSP state for the specified screen is immediately written to the LCD registers. This constant is 0x52 on GSP for 11.16.0-48, though it used to be 0x54.

This command should only be used when directly writing to the framebuffers; when using the GPU the framebuffer info stored in GSP shared memory should be used instead.