Difference between revisions of "NV2A/Surface Formats"

From xboxdevwiki
Jump to: navigation, search
(Add link to NV texture fomat list, and XQEMU links for signedness and convolution)
(Dummy info about O and Z fields, and list of formats (should link to nouveau or XQEMU instead in future))
 
Line 19: Line 19:
  
 
== Framebuffer formats ==
 
== Framebuffer formats ==
 +
 +
Surfaces are rendertargets of the GPU, they can be swizzled or linear.
 +
Additionally, they can be optimized using tiling{{FIXME|reason=Document tiling}}.
 +
 +
{{FIXME|reason=Link to nouveau documentation instead; this section shouldn't be here}}
 +
 +
=== 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|reason=Document compression}}.
 +
 +
* NV097_SET_SURFACE_FORMAT_ZETA_Z16
 +
* NV097_SET_SURFACE_FORMAT_ZETA_Z24S8
  
 
[[Category:NV2A]]
 
[[Category:NV2A]]

Latest revision as of 12:28, 27 June 2019


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