nngxAddJumpCommand Function
NNGX_APICALL void NNGX_APIENTRY nngxAddJumpCommand(
const GLvoid * bufferaddr,
GLsizei buffersize
);
| Name | Description | |
|---|---|---|
| in | bufferaddr |
Address of the region storing the command buffer. |
| in | buffersize |
Size of the command buffer stored at bufferaddr in bytes. |
Adds a command to the current command buffer for jumping to the executable address in the specified command buffer.
When this function is called, Channel 0 of the command buffer execution interface is used to add a command to the current command buffer starting from the address given by bufferaddr up to the buffer size given by buffersize, and to generate a render command request. Commands generated by this function overwrite the contents of registers 0x238 and 0x23A.
Once the current command buffer is executed, commands that have accumulated up to the point this function is called will execute first and then subsequent execution will start from the address specified by bufferadderss without allowing any interrupts.
A command that generates an interrupt must be stored at the end of the command buffer specified by bufferaddr. Instead of a command that generates an interrupt, you can store a kick command in the next command buffer, but you need to store an interrupt-generating command at the end of the command buffer that is ultimately kicked. The kick command for the next command buffer and location of the final command that generates an interrupt must be handled by the application.
The command buffer given by bufferaddr is directly executed from the specified address without being copied to the current command buffer. Applications must guarantee that the buffer given by bufferaddr is flushed. Furthermore, bufferaddr must be a multiple of 16.
buffersize must be a positive multiple of 16.
If this function is called immediately after the current command buffer has been flushed, by using nngxFlush3DCommand for example, the function has no effect and an error occurs. Immediately after flushing the current command buffer, add a command using nngxAdd3DCommand.
This function generates the following errors.
| GL_ERROR_8096_DMP | 0 is bound to the current command list. |
|---|---|
| GL_ERROR_8097_DMP | buffersize is less than or equal to 0. |
| GL_ERROR_8098_DMP | bufferaddr is not a multiple of 16. |
| GL_ERROR_8099_DMP | bufferaddr is not a multiple of 16. |
| GL_ERROR_809A_DMP | The function was called immediately after the current command buffer was flushed. |
| GL_ERROR_809B_DMP | The maximum size the current command request can store was exceeded when a command was added by this function. |
| GL_ERROR_809C_DMP | The maximum size the current command buffer can store was exceeded when a command was added using this function. |
CONFIDENTIAL