nngxAddVramDmaCommandNoCacheFlush Function

Syntax

NNGX_APICALL void NNGX_APIENTRY nngxAddVramDmaCommandNoCacheFlush(
     const GLvoid * srcaddr,
     GLvoid * dstaddr,
     GLsizei size
);

Arguments

Name Description
in srcaddr Transfer source address (main memory).
in dstaddr Transfer destination address (VRAM).
in size Transfer data size.

Return Values

No values are returned.

Description

Issues a DMA transfer command request to the current command list.

DMA 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 size bytes of data from the address specified in srcaddr to the address specified in dstaddr.

There are no restrictions on the alignment of values that can be set in srcaddr, dstaddr, or size. However, both srcaddr and dstaddr can be transferred most efficiently by using pointers that have 8-byte alignment.

This function performs the same operations as the nngxAddVramDmaCommand function, except that this function does not flush the cache of the region specified by srcaddr. This function assumes that 1) nngxAddVramDmaCommand has already been called once for this region, or 2) nngxUpdateBuffer has been explicitly called, or 3) flushing has been made unnecessary in some other way. Operation is not guaranteed if this function is used when this assumption is not true.

This function generates the following errors.

GL_ERROR_8090_DMPA valid command list is not currently bound.
GL_ERROR_8091_DMPThe size argument is negative.

See Also

nngxAddVramDmaCommand

Revision History

2011/08/02
Added information about alignment and transfer efficiency.
2011/03/18
Initial version.

CONFIDENTIAL