1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../css/manpage.css" type="text/css" />
7<title>nngxAddVramDmaCommand</title>
8  </head>
9  <body>
10<h1><CODE>nngxAddVramDmaCommand</CODE> Function</h1>
11<h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14NNGX_APICALL void NNGX_APIENTRY nngxAddVramDmaCommand(
15     const GLvoid * srcaddr,
16     GLvoid * dstaddr,
17     GLsizei size
18);
19</pre>
20    </div>
21<h2>Parameters</h2>
22    <div class="section">
23      <table class="arguments">
24        <thead>
25          <tr>
26            <td width="15" />
27<th>Name</th>
28<td>Description</td>
29          </tr>
30        </thead>
31        <tr>
32<td>in</td>
33<th>srcaddr</th>
34<td>Transfer source address (main memory).</td>
35        </tr>
36        <tr>
37<td>in</td>
38<th>dstaddr</th>
39<td>Transfer destination address (VRAM).</td>
40        </tr>
41        <tr>
42<td>in</td>
43<th>size</th>
44<td>Transfer data size.</td>
45        </tr> </table>
46    </div>
47<h2>Return Values</h2>
48<div class="section">There is no return value. </div>
49<h2>Description</h2>
50    <div class="section">
51<p>Issues a DMA transfer command request to the current command list.</p><P>
52DMA transfer command requests accumulate in the current command list. They are used when transferring data from main memory to VRAM without using the GL functions. This operation transfers <SPAN class="argument">size</SPAN> bytes of data from the address specified in <SPAN class="argument">srcaddr</SPAN> to the address specified in <SPAN class="argument">dstaddr</SPAN>.
53            </P><P>
54There are no restrictions on the alignment of values that can be set in <SPAN class="argument">srcaddr</SPAN>, <SPAN class="argument">dstaddr</SPAN>, or <SPAN class="argument">size</SPAN>. However, both <SPAN class="argument">srcaddr</SPAN> and <SPAN class="argument">dstaddr</SPAN> can be transferred more efficiently by using pointers that have 8-byte alignment.
55            </P><P>
56When using this function to perform a DMA transfer, cache coherecy is handled internally prior to the transfer and does not require support from the calling side. When a cache flush is unnecessary, it can be omitted by using the <CODE>nngxAddVramDmaCommandNoCacheFlush</CODE> function.
57            </P><P>
58The following errors occur with this function.
59<TABLE><TR><TH><CODE>GL_ERROR_8062_DMP</CODE></TH><TD>A valid command list is not currently bound.</TD></TR><TR><TH><CODE>GL_ERROR_8064_DMP</CODE></TH><TD>The <SPAN class="argument">size</SPAN> argument is negative.</TD></TR></TABLE></P></div>
60<h2>See Also</h2>
61    <div class="section">
62<p class="reference"><a href="../nn_gx/nngxAddVramDmaCommandNoCacheFlush.html"><CODE>nngxAddVramDmaCommandNoCacheFlush</CODE></a><br /> </p>
63    </div>
64<h2>Revision History</h2>
65    <div class="section">
66      <dl class="history">
67        <dt>2011/08/02</dt>
68<dd>Added information about alignment and transfer efficiency.<BR>
69        </dd>
70        <dt>2011/03/18</dt>
71<dd>Added an explanation about the <CODE>nngxAddVramDmaCommandNoCacheFlush</CODE> function.<br />
72        </dd>
73        <dt>2011/02/18</dt>
74<dd>Deleted indications specific to the 8-byte alignment restrictions for <CODE>srcaddr</CODE> and <CODE>dstaddr</CODE>.<br />
75        </dd>
76        <dt>2011/01/17</dt>
77<dd>Explained cache coherency.<br />
78        </dd>
79        <dt>2010/06/09</dt>
80<dd>Initial version.<br />
81        </dd>
82      </dl>
83    </div>
84  <hr><p>CONFIDENTIAL</p></body>
85</html>
86