NV2A/Surface Formats

From xboxdevwiki
Revision as of 20:28, 27 June 2019 by JayFoxRox (talk | contribs) (Dummy info about O and Z fields, and list of formats (should link to nouveau or XQEMU instead in future))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Texture formats

Texture decoding / sampling

The textures are sampled by the texture shader portion of NV2A/Pixel_Combiner.

Texture signedness

Each component of the texture can be either signed (two's-complement) or unsigned.[1][FIXME].

Texture filtering

The GPU implements the standard texture filters as known from OpenGL. In addition, it supports convolution filters[2][FIXME].

Framebuffer formats

Surfaces are rendertargets of the GPU, they can be swizzled or linear. Additionally, they can be optimized using tiling[FIXME].

[FIXME]

Color

Z and O stand for Zero and One respectively. These fields will always be cleared (Zero) or all bis will be set (One).

  • NV097_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_Z1R5G5B5
  • NV097_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_O1R5G5B5
  • NV097_SET_SURFACE_FORMAT_COLOR_LE_R5G6B5
  • NV097_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_Z8R8G8B8
  • NV097_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_O8R8G8B8
  • NV097_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_Z1A7R8G8B8
  • NV097_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_O1A7R8G8B8
  • NV097_SET_SURFACE_FORMAT_COLOR_LE_A8R8G8B8
  • NV097_SET_SURFACE_FORMAT_COLOR_LE_B8 (not suitable for displaying)
  • NV097_SET_SURFACE_FORMAT_COLOR_LE_G8B8 (not suitable for displaying)

Depth

The depth buffer can be configured to be fixed point or floating point.

Additionally, the GPU allows hardware Z-Buffer compression[FIXME].

  • NV097_SET_SURFACE_FORMAT_ZETA_Z16
  • NV097_SET_SURFACE_FORMAT_ZETA_Z24S8