Difference between revisions of "GSPGPU:SetBufferSwap"

From 3dbrew
Jump to navigation Jump to search
Line 47: Line 47:
 
|-
 
|-
 
| 4
 
| 4
 +
| Framebuffer format
 +
|-
 +
| 5
 +
| Value for [[LCD|0x1EF00X78]], controls which framebuffer is displayed
 +
|-
 +
| 6
 
| ?
 
| ?
 +
|}
 +
 +
== Framebuffer format field ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Bit
 +
!  Description
 +
|-
 +
| 3-0
 +
| Color format
 +
|-
 +
| 4
 +
| Unused?
 
|-
 
|-
 
| 5
 
| 5
| Value for [[LCD|0x1EF00X78]], controls which framebuffer is displayed
+
| Set when the main screen 3D right framebuffer address is set.
 
|-
 
|-
 
| 6
 
| 6
 +
| 1 = main screen, 0 = sub screen. However if bit5 is set, this bit is cleared.
 +
|-
 +
| 7
 
| ?
 
| ?
 +
|-
 +
| 9-8
 +
| Value 1 = unknown, 3 = unknown.
 +
|-
 +
| 31-10
 +
| Unused?
 +
|}
 +
 +
== Color formats ==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0
 +
| GL_RGBA8_OES
 +
|-
 +
| 1
 +
| GL_RGB8_OES
 +
|-
 +
| 2
 +
| GL_RGB565_OES
 +
|-
 +
| 3
 +
| GL_RGB5_A1_OES
 +
|-
 +
| 4
 +
| GL_RGBA4_OES
 
|}
 
|}
  
 
=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 command should only be used when directly writing to the framebuffers, otherwise when rendering to the framebuffers with the [[GPU]] the framebuffer info stored in [[GSP_Shared_Memory|GSP shared memory]] should be used instead.
 
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 command should only be used when directly writing to the framebuffers, otherwise when rendering to the framebuffers with the [[GPU]] the framebuffer info stored in [[GSP_Shared_Memory|GSP shared memory]] should be used instead.

Revision as of 08:47, 28 February 2013

Request

Index Word Description
0 Header code [0x00050200]
1 Screen ID: 0=main, 1=sub
2-7 Framebuffer info structure

Response

Index Word Description
0 Header code
1 Result code

Framebuffer info structure

Index Word Description
0 Active framebuffer: 0=first, 1=second
1 Framebuffer virtual address, for the main screen this is the 3D left framebuffer
2 For the main screen: 3D right framebuffer address
3 Value for 0x1EF00X90, controls framebuffer width
4 Framebuffer format
5 Value for 0x1EF00X78, controls which framebuffer is displayed
6 ?

Framebuffer format field

Bit Description
3-0 Color format
4 Unused?
5 Set when the main screen 3D right framebuffer address is set.
6 1 = main screen, 0 = sub screen. However if bit5 is set, this bit is cleared.
7 ?
9-8 Value 1 = unknown, 3 = unknown.
31-10 Unused?

Color formats

Value Description
0 GL_RGBA8_OES
1 GL_RGB8_OES
2 GL_RGB565_OES
3 GL_RGB5_A1_OES
4 GL_RGBA4_OES

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 command should only be used when directly writing to the framebuffers, otherwise when rendering to the framebuffers with the GPU the framebuffer info stored in GSP shared memory should be used instead.