GSPGPU:SetBufferSwap: Difference between revisions

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..."
 
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.

Latest revision as of 22:35, 13 October 2023

Request

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

Response

Index Word Description
0 Header code
1 Result code

Description

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.