struct _VADRMPRIMESurfaceDescriptor

Defined at line 120 of file ../../third_party/intel/libva/va/va_drmcommon.h

External buffer descriptor for a DRM PRIME surface.

For export, call vaExportSurfaceHandle() with mem_type set to

VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2 and pass a pointer to an

instance of this structure to fill.

If VA_EXPORT_SURFACE_SEPARATE_LAYERS is specified on export, each

layer will contain exactly one plane. For example, an NV12

surface will be exported as two layers, one of DRM_FORMAT_R8 and

one of DRM_FORMAT_GR88.

If VA_EXPORT_SURFACE_COMPOSED_LAYERS is specified on export,

there will be exactly one layer.

For import, call vaCreateSurfaces() with the MemoryType attribute

set to VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2 and the

ExternalBufferDescriptor attribute set to point to an array of

num_surfaces instances of this structure.

The number of planes which need to be provided for a given layer

is dependent on both the format and the format modifier used for

the objects containing it. For example, the format DRM_FORMAT_RGBA

normally requires one plane, but with the format modifier

I915_FORMAT_MOD_Y_TILED_CCS it requires two planes - the first

being the main data plane and the second containing the color

control surface.

Note that a given driver may only support a subset of possible

representations of a particular format. For example, it may only

support NV12 surfaces when they are contained within a single DRM

object, and therefore fail to create such surfaces if the two

planes are in different DRM objects.

Public Members

uint32_t fourcc
uint32_t width
uint32_t height
uint32_t num_objects
struct (unnamed at ../../third_party/intel/libva/va/va_drmcommon.h:130:5)[4] objects
uint32_t num_layers
struct (unnamed at ../../third_party/intel/libva/va/va_drmcommon.h:142:5)[4] layers

Records