GSPGPU:SetBufferSwap: Difference between revisions

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..."
 
Kynex7510 (talk | contribs)
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.