KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
Texture Stride Management

Configuration and retrieval of texture stride settings in VRAM. More...

Functions

bool pvr_txr_set_stride (uint32_t texture_width)
 Set the global stride width for non-power-of-two textures in PVR RAM.
 
uint32_t pvr_txr_get_stride (void)
 Get the current texture stride width in pixels as set in the PVR.
 

Detailed Description

Configuration and retrieval of texture stride settings in VRAM.

Function Documentation

◆ pvr_txr_get_stride()

uint32_t pvr_txr_get_stride ( void )

Get the current texture stride width in pixels as set in the PVR.

This function reads the PVR_TXR_STRIDE_MULT register and calculates the texture stride width in pixels. The value returned is the width in pixels that has been configured for all textures using the PVR_TXRFMT_X32_STRIDE flag in the same frame.

The stride width is computed by taking the current multiplier in PVR_TXR_STRIDE_MULT (which stores the width divided by 32), and multiplying it back by 32 to return the full width in pixels.

Returns
The current texture stride width in pixels.
See also
pvr_txr_set_stride()

◆ pvr_txr_set_stride()

bool pvr_txr_set_stride ( uint32_t texture_width)

Set the global stride width for non-power-of-two textures in PVR RAM.

This function configures the global texture stride register PVR_TXR_STRIDE_MULT, which defines the row width in VRAM for non-power-of-two textures. The setting applies to all textures rendered with the PVR_TXRFMT_X32_STRIDE flag in the same frame. Since PVR_TXR_STRIDE_MULT is a global register, all textures using this flag must share the same stride width in each frame.

The stride width configured here is only supported for textures with widths that are multiples of 32 pixels and up to a maximum of 992 pixels. Any texture width not meeting this requirement will not work with the PVR_TXRFMT_X32_STRIDE flag.

Warning
  • Textures that are palette-based cannot use the PVR_TXRFMT_X32_STRIDE flag so the stride set here will not apply to them.
Parameters
texture_widthThe width of the texture in pixels. Must be a multiple of 32 and up to 992 pixels.
Return values
trueOn success.
falseOn failure.
See also
pvr_txr_get_stride()