XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_vc4_submit_cl Struct Reference

#include <vc4_drm.h>

Collaboration diagram for drm_vc4_submit_cl:
Collaboration graph
[legend]

Public Attributes

__u64 bin_cl
 
__u64 shader_rec
 
__u64 uniforms
 
__u64 bo_handles
 
__u32 bin_cl_size
 
__u32 shader_rec_size
 
__u32 shader_rec_count
 
__u32 uniforms_size
 
__u32 bo_handle_count
 
__u16 width
 
__u16 height
 
__u8 min_x_tile
 
__u8 min_y_tile
 
__u8 max_x_tile
 
__u8 max_y_tile
 
struct drm_vc4_submit_rcl_surface color_read
 
struct drm_vc4_submit_rcl_surface color_write
 
struct drm_vc4_submit_rcl_surface zs_read
 
struct drm_vc4_submit_rcl_surface zs_write
 
struct drm_vc4_submit_rcl_surface msaa_color_write
 
struct drm_vc4_submit_rcl_surface msaa_zs_write
 
__u32 clear_color [2]
 
__u32 clear_z
 
__u8 clear_s
 
__u32 pad:24
 
__u32 flags
 
__u64 seqno
 
__u32 perfmonid
 
__u32 in_sync
 
__u32 out_sync
 
__u32 pad2
 

Detailed Description

struct drm_vc4_submit_cl - ioctl argument for submitting commands to the 3D engine.

Drivers typically use GPU BOs to store batchbuffers / command lists and their associated state. However, because the VC4 lacks an MMU, we have to do validation of memory accesses by the GPU commands. If we were to store our commands in BOs, we'd need to do uncached readback from them to do the validation process, which is too expensive. Instead, userspace accumulates commands and associated state in plain memory, then the kernel copies the data to its own address space, and then validates and stores it in a GPU BO.

Member Data Documentation

◆ bin_cl

__u64 drm_vc4_submit_cl::bin_cl

◆ bin_cl_size

__u32 drm_vc4_submit_cl::bin_cl_size

◆ bo_handle_count

__u32 drm_vc4_submit_cl::bo_handle_count

◆ bo_handles

__u64 drm_vc4_submit_cl::bo_handles

◆ clear_color

__u32 drm_vc4_submit_cl::clear_color[2]

◆ clear_s

__u8 drm_vc4_submit_cl::clear_s

◆ clear_z

__u32 drm_vc4_submit_cl::clear_z

◆ color_read

struct drm_vc4_submit_rcl_surface drm_vc4_submit_cl::color_read

◆ color_write

struct drm_vc4_submit_rcl_surface drm_vc4_submit_cl::color_write

◆ flags

__u32 drm_vc4_submit_cl::flags

◆ height

__u16 drm_vc4_submit_cl::height

◆ in_sync

__u32 drm_vc4_submit_cl::in_sync

◆ max_x_tile

__u8 drm_vc4_submit_cl::max_x_tile

◆ max_y_tile

__u8 drm_vc4_submit_cl::max_y_tile

◆ min_x_tile

__u8 drm_vc4_submit_cl::min_x_tile

◆ min_y_tile

__u8 drm_vc4_submit_cl::min_y_tile

◆ msaa_color_write

struct drm_vc4_submit_rcl_surface drm_vc4_submit_cl::msaa_color_write

◆ msaa_zs_write

struct drm_vc4_submit_rcl_surface drm_vc4_submit_cl::msaa_zs_write

◆ out_sync

__u32 drm_vc4_submit_cl::out_sync

◆ pad

__u32 drm_vc4_submit_cl::pad

◆ pad2

__u32 drm_vc4_submit_cl::pad2

◆ perfmonid

__u32 drm_vc4_submit_cl::perfmonid

◆ seqno

__u64 drm_vc4_submit_cl::seqno

◆ shader_rec

__u64 drm_vc4_submit_cl::shader_rec

◆ shader_rec_count

__u32 drm_vc4_submit_cl::shader_rec_count

◆ shader_rec_size

__u32 drm_vc4_submit_cl::shader_rec_size

◆ uniforms

__u64 drm_vc4_submit_cl::uniforms

◆ uniforms_size

__u32 drm_vc4_submit_cl::uniforms_size

◆ width

__u16 drm_vc4_submit_cl::width

◆ zs_read

struct drm_vc4_submit_rcl_surface drm_vc4_submit_cl::zs_read

◆ zs_write

struct drm_vc4_submit_rcl_surface drm_vc4_submit_cl::zs_write

The documentation for this struct was generated from the following file: