KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
pvr_dma.h File Reference

API for utilizing the DMA with the PVR for rendering. More...

#include <stdint.h>
#include <stdbool.h>
#include <sys/cdefs.h>

Go to the source code of this file.

Typedefs

typedef void(* pvr_dma_callback_t) (void *data)
 PVR DMA interrupt callback type.
 

Enumerations

enum  pvr_dma_type_t {
  PVR_DMA_VRAM64 , PVR_DMA_VRAM32 , PVR_DMA_TA , PVR_DMA_YUV ,
  PVR_DMA_VRAM32_SB , PVR_DMA_VRAM64_SB
}
 Transfer modes with TA/PVR DMA and Store Queues. More...
 

Functions

int pvr_dma_transfer (const void *src, uintptr_t dest, size_t count, pvr_dma_type_t type, bool block, pvr_dma_callback_t callback, void *cbdata)
 Perform a DMA transfer to the PVR RAM over 64-bit TA bus.
 
int pvr_txr_load_dma (const void *src, pvr_ptr_t dest, size_t count, bool block, pvr_dma_callback_t callback, void *cbdata)
 Load a texture using TA DMA.
 
int pvr_dma_load_ta (const void *src, size_t count, bool block, pvr_dma_callback_t callback, void *cbdata)
 Load vertex data to the TA using TA DMA.
 
int pvr_dma_yuv_conv (const void *src, size_t count, bool block, pvr_dma_callback_t callback, void *cbdata)
 Load yuv data to the YUV converter using TA DMA.
 
bool pvr_dma_ready (void)
 Is PVR DMA is inactive?
 
void pvr_dma_init (void)
 Initialize TA/PVR DMA.
 
void pvr_dma_shutdown (void)
 Shut down TA/PVR DMA.
 
void * pvr_sq_load (void *dest, const void *src, size_t n, pvr_dma_type_t type)
 Copy a block of memory to VRAM.
 
void * pvr_sq_set16 (void *dest, uint32_t c, size_t n, pvr_dma_type_t type)
 Set a block of PVR memory to a 16-bit value.
 
void * pvr_sq_set32 (void *dest, uint32_t c, size_t n, pvr_dma_type_t type)
 Set a block of PVR memory to a 32-bit value.
 

Detailed Description

API for utilizing the DMA with the PVR for rendering.

Author
Megan Potter
Roger Cattermole
Paul Boese
Brian Paul
Lawrence Sebald
Benoit Miller
Ruslan Rostovtsev
Falco Girgis
Todo
  • Top level "Transfer" group a. DMA b. SQs