| 
				   | 
				
| (10 intermediate revisions by 5 users not shown) | 
| Line 1: | 
Line 1: | 
 | This page describes the [[GPU_Commands|GPU commands]] used for textures.  |  | This page is obsolete, see [[GPU/Internal_Registers|here]] for GPU register information, including that of textures.  | 
 |    |  | 
 | == Texture unit setup: Register 0x80 ==
  |  | 
 | Register 0x80 is used to enable individual texture units.
  |  | 
 |    |  | 
 | {| class="wikitable" border="1"
  |  | 
 | !  Bit
  |  | 
 | !  Description
  |  | 
 | |-
  |  | 
 | | 0
  |  | 
 | | Enable texture unit 0.
  |  | 
 | |-
  |  | 
 | | 1
  |  | 
 | | Enable texture unit 1.
  |  | 
 | |-
  |  | 
 | | 2
  |  | 
 | | Enable texture unit 2.
  |  | 
 | |}
  |  | 
 |    |  | 
 | == Configuration of texture unit 0 ==
  |  | 
 | {| class="wikitable" border="1"
  |  | 
 | !  Register ID
  |  | 
 | !  Description
  |  | 
 | |-
  |  | 
 | | 0x0081
  |  | 
 | | Border color (unverified)
  |  | 
 | |-
  |  | 
 | | 0x0082
  |  | 
 | | Bits 16-31 are the texture width. Bits 0-15 are the texture height. The maximum texture size in either direction is 1024.
  |  | 
 | |-
  |  | 
 | | 0x0083
  |  | 
 | | Texture parameters (filtering, wrapping), see below.
  |  | 
 | |-
  |  | 
 | | 0x0084
  |  | 
 | | LOD setup?
  |  | 
 | |-
  |  | 
 | | 0x0085
  |  | 
 | | Physical address of texture data (divided by 8).
  |  | 
 | |-
  |  | 
 | | 0x0086
  |  | 
 | | Physical address of texture data for cube mapping?
  |  | 
 | |-
  |  | 
 | | 0x0087
  |  | 
 | | Physical address of texture data for cube mapping?
  |  | 
 | |-
  |  | 
 | | 0x0088
  |  | 
 | | Physical address of texture data for cube mapping?
  |  | 
 | |-
  |  | 
 | | 0x0089
  |  | 
 | | Physical address of texture data for cube mapping?
  |  | 
 | |-
  |  | 
 | | 0x008A
  |  | 
 | | Physical address of texture data for cube mapping?
  |  | 
 | |-
  |  | 
 | | 0x008B
  |  | 
 | | Shadow related?
  |  | 
 | |-
  |  | 
 | | 0x008E
  |  | 
 | | Texture format (see below)
  |  | 
 | |}
  |  | 
 |    |  | 
 | == Configuration of texture units 1 and 2 ==
  |  | 
 | Texture units 1 and 2 use a configuration block similar to the one of texture unit 0. They are based at registers 0x0091 and 0x0099.
  |  | 
 |    |  | 
 | {| class="wikitable" border="1"
  |  | 
 | !  Index word
  |  | 
 | !  Description
  |  | 
 | |-
  |  | 
 | | 0-4
  |  | 
 | | Same as for texture unit 0
  |  | 
 | |-
  |  | 
 | | 5
  |  | 
 | | Texture format (see below)
  |  | 
 | |}
  |  | 
 |    |  | 
 | == Configuration of texture unit 3 ==
  |  | 
 | The configuration block for texture unit 3 seems to be vastly different from the other texture units. Instead, registers 0x00A8 through 0x00B7 are used to configure procedural texturing features.
  |  | 
 |    |  | 
 | == Texture info parameter structure for commands 0x0091 and 0x0099 ==
  |  | 
 | {| class="wikitable" border="1"
  |  | 
 | !  Index Word
  |  | 
 | !  Description
  |  | 
 | |-
  |  | 
 | | 4-0
  |  | 
 | | Same as command 0x0081.
  |  | 
 | |-
  |  | 
 | | 5
  |  | 
 | | Color type
  |  | 
 | |}
  |  | 
 |    |  | 
 | == Texture parameters ==
  |  | 
 | {| class="wikitable" border="1"
  |  | 
 | !  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 ==
  |  | 
 | {| class="wikitable" border="1"
  |  | 
 | !  Value
  |  | 
 | !  Description
  |  | 
 | !  GL Format
  |  | 
 | !  GL Data Type
  |  | 
 | |-
  |  | 
 | | 0x0
  |  | 
 | | RGBA8888
  |  | 
 | | GL_RGBA / DMP-extension constant 0x6752
  |  | 
 | | GL_UNSIGNED_BYTE
  |  | 
 | |-
  |  | 
 | | 0x1
  |  | 
 | | BGR888
  |  | 
 | | GL_RGB / DMP-extension constant 0x6754
  |  | 
 | | GL_UNSIGNED_BYTE
  |  | 
 | |-
  |  | 
 | | 0x2
  |  | 
 | | RGBA5551
  |  | 
 | | GL_RGBA / DMP-extension constant 0x6752
  |  | 
 | | GL_UNSIGNED_SHORT_5_5_5_1
  |  | 
 | |-
  |  | 
 | | 0x3
  |  | 
 | | BGR565
  |  | 
 | | GL_RGB / DMP-extension constant 0x6754
  |  | 
 | | GL_UNSIGNED_SHORT_5_6_5
  |  | 
 | |-
  |  | 
 | | 0x4
  |  | 
 | | RGBA4444
  |  | 
 | | GL_RGBA / DMP-extension constant 0x6752
  |  | 
 | | GL_UNSIGNED_SHORT_4_4_4_4
  |  | 
 | |-
  |  | 
 | | 0x5
  |  | 
 | | Tiled RGB565
  |  | 
 | | GL_LUMINANCE_ALPHA(?) / DMP-extension constant 0x6758(?)
  |  | 
 | | GL_UNSIGNED_BYTE(?)
  |  | 
 | |-
  |  | 
 | | 0x6
  |  | 
 | | Tiled BGR888
  |  | 
 | | DMP-extension constants 0x6700 / 0x6759
  |  | 
 | | GL_UNSIGNED_BYTE
  |  | 
 | |-
  |  | 
 | | 0x7
  |  | 
 | | 
  |  | 
 | | GL_LUMINANCE / DMP-extension constant 0x6757
  |  | 
 | | GL_UNSIGNED_BYTE
  |  | 
 | |-
  |  | 
 | | 0x8
  |  | 
 | | 
  |  | 
 | | GL_ALPHA / DMP-extension constant 0x6756
  |  | 
 | | GL_UNSIGNED_BYTE
  |  | 
 | |-
  |  | 
 | | 0x9
  |  | 
 | | ?
  |  | 
 | | GL_LUMINANCE_ALPHA / DMP-extension constant 0x6758
  |  | 
 | | DMP-extension constant 0x6760
  |  | 
 | |-
  |  | 
 | | 0xA
  |  | 
 | | ?
  |  | 
 | | GL_LUMINANCE / DMP-extension constant 0x6757
  |  | 
 | | DMP-extension constant 0x6761
  |  | 
 | |-
  |  | 
 | | 0xB
  |  | 
 | | ?
  |  | 
 | | GL_ALPHA / DMP-extension constant 0x6756
  |  | 
 | | DMP-extension constant 0x6761
  |  | 
 | |-
  |  | 
 | | 0xC
  |  | 
 | | Compression related?
  |  | 
 | | DMP-extension constant 0x675A
  |  | 
 | | 
  |  | 
 | |-
  |  | 
 | | 0xD
  |  | 
 | | ?
  |  | 
 | | DMP-extension constant 0x675B
  |  | 
 | | 
  |  | 
 | |}
  |  | 
This page is obsolete, see here for GPU register information, including that of textures.