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