Difference between revisions of "GPU Textures"

From 3dbrew
Jump to navigation Jump to search
Line 19: Line 19:
 
|}
 
|}
  
Textures are initially disabled when beginning rendering for each mesh, this command set also enables textures.
+
Textures are initially disabled when beginning rendering for each mesh, this command set also enables textures. This command set is used for index0, commands 0x805F0091 and 0x805F0099 are used for index1-index2.
  
 
=== Texture info parameter structure for CmdID 0x809F0081 ===
 
=== Texture info parameter structure for CmdID 0x809F0081 ===
Line 39: Line 39:
 
|-
 
|-
 
| 4
 
| 4
| Texture data physical address >> 3. This is normally located in VRAM.
+
| Texture image data physical address >> 3.
 
|-
 
|-
 
| 5-9
 
| 5-9
| ?
+
| Value zero
 +
|}
 +
 
 +
== Texture info parameter structure for CmdID 0x805F0091 and 0x805F0099 ==
 +
{| class="wikitable" border="1"
 +
!  Index Word
 +
!  Description
 +
|-
 +
| 4-0
 +
| Same as CmdID 0x809F0081.
 +
|-
 +
| 5
 +
| Color type
 
|}
 
|}
  
==== Texture parameters ====
+
== Texture parameters ==
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  Bit
 
!  Bit
Line 98: Line 110:
 
|}
 
|}
  
=== Texture color type parameter values for CmdID 0x000F008E ===
+
== Texture color types ==
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  Value
 
!  Value

Revision as of 18:56, 6 March 2013

This page describes the GPU commands used for textures.

Command set 0x809F0081

Command Index CommandID Parameter Description
0 0x809F0081 This is used to set the current texture info used for rendering.
1 0x000F008E u32 color type This sets the current texture color type.

Textures are initially disabled when beginning rendering for each mesh, this command set also enables textures. This command set is used for index0, commands 0x805F0091 and 0x805F0099 are used for index1-index2.

Texture info parameter structure for CmdID 0x809F0081

Index Word Description
0 ?
1 The low u16 is the texture image width, and the high u16 is the texture image height.
2 Texture parameters, initialized by glTexParameter().
3 ?
4 Texture image data physical address >> 3.
5-9 Value zero

Texture info parameter structure for CmdID 0x805F0091 and 0x805F0099

Index Word Description
4-0 Same as CmdID 0x809F0081.
5 Color type

Texture parameters

Bit Description GL parameter name
0 Normally this is value 0.
1 0 = GL_NEAREST, 1 = GL_LINEAR. GL_TEXTURE_MAG_FILTER
2 1 = GL_LINEAR, GL_LINEAR_MIPMAP_NEAREST, or GL_LINEAR_MIPMAP_LINEAR. Value zero otherwise. GL_TEXTURE_MIN_FILTER
3 Unused? ?
5-4 2 = texture color type 0xC, 0 otherwise.(Enable/disable texture data compression?) 0 = unknown, 1 = unknown, 3 = same effect as value 2.
7-6 Unused
11-8 0 = GL_CLAMP_TO_EDGE, 1=unknown, 2=GL_REPEAT, 3=unknown. GL_TEXTURE_WRAP_S
15-12 Same values as GL_TEXTURE_WRAP_S. GL_TEXTURE_WRAP_T
24 1 = GL_NEAREST_MIPMAP_LINEAR, or GL_LINEAR_MIPMAP_LINEAR. Value zero otherwise. GL_TEXTURE_MIN_FILTER
27-25 Unused?
30-28 When some flag=1: value1=GL_TEXTURE_2D, value0 when the input parameter is not GL_TEXTURE_2D. When some flag=0: 0=GL_TEXTURE_2D, 1-4=unknown. ?
31 Unused? ?

Texture color types

Value Description GL Format GL Data Type
0x0 RGBA8888 GL_RGBA GL_UNSIGNED_BYTE
0x1 BGR888 GL_RGB GL_UNSIGNED_BYTE
0x2 RGBA5551 GL_RGBA GL_UNSIGNED_SHORT_5_5_5_1
0x3 BGR565 GL_RGB GL_UNSIGNED_SHORT_5_6_5
0x4 RGBA4444 GL_RGBA GL_UNSIGNED_SHORT_4_4_4_4
0x5 GL_LUMINANCE_ALPHA GL_UNSIGNED_BYTE
0x6 ? ? GL_UNSIGNED_BYTE
0x7 GL_LUMINANCE GL_UNSIGNED_BYTE
0x8 GL_ALPHA GL_UNSIGNED_BYTE
0x9 ? GL_LUMINANCE_ALPHA ?
0xA ? GL_LUMINANCE
0xB ? GL_ALPHA
0xC Compression related? ?
0xD ? ?