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