osDpGetStatus.3p
1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
.TH osDp 3P local "Silicon Graphics, Inc."
.SH NAME
.upperok
osDpGetStatus, osDpSetStatus, osDpSetNextBuffer \-
control and interrogate the display processor (DP)
.SH SYNOPSIS
.nf
\f3
.Op c
#include <ultra64.h>
.sp .8v
u32 osDpGetStatus(void);
.sp .8v
void osDpSetStatus(u32 status);
.sp .8v
s32 osDpSetNextBuffer(void *bufPtr, u64 size);
.Op
\f1
.fi
.SH DESCRIPTION
These routines provide basic control for the DP interface.
.PP
The
.I osDpGetStatus
call simply returns the hardware status of the DP command status register.
The 32-bit returned value contains the following bits which may be of interest
to the user:
.PP
.TP 10
.I DPC_STATUS_TMEM_BUSY
DP texture load is in progress.
.TP
.I DPC_STATUS_PIPE_BUSY
DP primitive is still being processed.
.TP
.I DPC_STATUS_CMD_BUSY
DP command buffer is full.
.TP
.I DPC_STATUS_DMA_BUSY
DP DMA is in progress.
.PP
The
.I osDpSetStatus
call updates the DP command status register with
.I status.
The bits of potential interest to the user are as follows:
.PP
.TP 10
.I DPC_CLR_TMEM_CTR
Reset DP
.I TMEM
counter.
.TP
.I DPC_CLR_PIPE_CTR
Reset DP
.I PIPE
counter.
.TP
.I DPC_CLR_CMD_CTR
Reset DP
.I CMD
counter.
.TP
.I DPC_CLR_CLOCK_CTR
Reset DP
.I CLOCK
counter.
.PP
The
.I osDpSetNextBuffer
call updates the DP pointers causing the DP to begin reading an RDP display
list from the DRAM buffer located at
.I bufPtr.
The length of the buffer must be indicated by
.I size
which is the number of bytes in the RDP display list.
.SH "SEE ALSO"
.IR osDpGetCounters (3P)