osDpGetStatus.htm
1.76 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
<HTML>
<HEAD>
<TITLE>HTML 文書</TITLE>
<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0j">
</HEAD>
<BODY>
<P>
<B><FONT FACE="Arial">osDpGetStatus(3P) <BR>
</FONT></B>
<P>
<B>関数名<BR>
</B>
<P>
osDpGetStatus, osDpSetStatus, osDpSetNextBuffer
<P>
→ ディスプレイプロセッサ(DP)の制御と問いかけ <BR>
<P>
<B>構文<BR>
</B>
<P>
#include <ultra64.h>
<P>
u32 osDpGetStatus(void);
<P>
void osDpSetStatus(u32 status);
<P>
s32 osDpSetNextBuffer(void *bufPtr, u64 size);<BR>
<P>
<B>説明<BR>
</B>
<P>
これらのルーチンはDPインターフェイスのための基本的なコントロールを供給します。
<P>
osDpGetStatusコールは単にDPコマンドステータスレジスタのハードウェアステータスを返します。32bitの返値はユーザーにとって重要な以下のビットを含んでいます。
<BR>
<P>
<B>DPC_STATUS_TMEM_BUSY</B> :DPテクスチャロードが進行中です。
<P>
<B>DPC_STATUS_PIPE_BUSY</B> :DPプリミティブがまだ進行中です。
<P>
<B>DPC_STATUS_CMD_BUSY</B> :DPコマンドバッファがいっぱいです。
<P>
<B>DPC_STATUS_DMA_BUSY</B> :DP DMAが進行中です。<BR>
<P>
osDpSetStatusコールはstatusにDPコマンドステータスレジスタをアップデートします。ユーザーにとって感心のあるビットは以下のものです。
<BR>
<P>
<B>DPC_CLR_TMEM_CTR</B> :DP TMEMカウンタのリセット。
<P>
<B>DPC_CLR_PIPE_CTR</B> :DP PIPEカウンタのリセット
<P>
<B>DPC_CLR_CMD_CTR</B> :DP CMDカウンタのリセット
<P>
<B>DPC_CLR_CLOCK_CTR</B> :DP CLOCKカウンタのリセット<BR>
<P>
osDpSetNextBufferコールはbufPtrに配置されているDRAMバッファからRDPディスプレイリストをDPが読み始めるきっかけとなるDPポインタをアップデートします。バッファ長はRDPディスプレイリスト中のバイト数sizeによって指定されなければなりません。
<BR>
<P>
<B>参照<BR>
</B>
<P>
<A HREF="osDpGetCounters.htm" >osDpGetCounters</A>(3P)<BR>
</BODY>
</HTML>