hal_gfx_cmdlist.h File Reference
#include "hal_gfx_sys_defs.h"
#include "hal_gfx_hal.h"

Go to the source code of this file.

Classes

struct  hal_gfx_cmdlist_t_
 Command list structure. More...
 

Macros

#define CL_NOP   0x010000U
 
#define CL_PUSH   0x020000U
 
#define CL_RETURN   0x040000U
 
#define CL_ABORT   0x080000U
 
#define CL_BATCH_SHIFT   12
 
#define CL_BATCH_LOOP   0x8000
 
#define SUBMISSION_ID_MASK   0xffffff
 

Typedefs

typedef struct hal_gfx_cmdlist_t_ hal_gfx_cmdlist_t
 Command list structure. More...
 

Functions

hal_gfx_cmdlist_t hal_gfx_cl_create_prealloc (hal_gfx_buffer_t *bo)
 Create a new Command List into a preallocated space. More...
 
hal_gfx_cmdlist_t hal_gfx_cl_create_sized (int size_bytes)
 Create a new, non expandable Command List of specific size. More...
 
hal_gfx_cmdlist_t hal_gfx_cl_create (void)
 Create a new expandable Command List. More...
 
hal_gfx_cmdlist_t hal_gfx_cl_le_create (void)
 Create a new expandable Command List with power management mode. More...
 
void hal_gfx_cl_destroy (hal_gfx_cmdlist_t *cl)
 Destroy/Free a Command List. More...
 
void hal_gfx_cl_le_destroy (hal_gfx_cmdlist_t *cl)
 Destroy/Free a Command List with power management mode. More...
 
void hal_gfx_cl_rewind (hal_gfx_cmdlist_t *cl)
 Reset position of next command to be written to the beginning. Doesn't clear the List's contents. More...
 
void hal_gfx_cl_bind (hal_gfx_cmdlist_t *cl)
 Define in which Command List each subsequent commands are going to be inserted. More...
 
void hal_gfx_cl_bind_circular (hal_gfx_cmdlist_t *cl)
 Define in which Command List each subsequent commands are going to be inserted. Bind this command list as Circular. It never gets full, it never expands, it may get implicitly submitted, it cannot be reused. More...
 
void hal_gfx_cl_unbind (void)
 Unbind current bound Command List, if any. More...
 
hal_gfx_cmdlist_thal_gfx_cl_get_bound (void)
 Get bound Command List. More...
 
void hal_gfx_cl_submit_no_irq (hal_gfx_cmdlist_t *cl)
 Push command to command list, but do not trigger interrupt. More...
 
void hal_gfx_cl_submit (hal_gfx_cmdlist_t *cl)
 Enqueue Command List to the Ring Buffer for execution. More...
 
int hal_gfx_cl_wait (hal_gfx_cmdlist_t *cl)
 Wait for Command List to finish. More...
 
void hal_gfx_cl_add_cmd (uint32_t reg, uint32_t data)
 Add a command to the bound Command List. More...
 
int hal_gfx_cl_add_multiple_cmds (int cmd_no, uint32_t *cmd)
 Add multiple commands to the bound Command List. More...
 
uint32_t * hal_gfx_cl_get_space (int cmd_no)
 Request free space from command list. More...
 
void hal_gfx_cl_branch (hal_gfx_cmdlist_t *cl)
 Branch from the bound Command List to a different one. Return is implied. More...
 
void hal_gfx_cl_jump (hal_gfx_cmdlist_t *cl)
 Jump from the bound Command List to a different one. No return is implied. More...
 
void hal_gfx_cl_return (void)
 Add an explicit return command to the bound Command List. More...
 
int hal_gfx_cl_almost_full (hal_gfx_cmdlist_t *cl)
 Returns positive number if the Command List is almost full, otherwise returns 0. More...
 
int hal_gfx_cl_enough_space (int cmd_no)
 Check if there is enough space or expansion can be performed for required commands. More...