Skip to content

Proposal: list of DRM modifiers as VASurfaceAttrib #502

@emersion

Description

@emersion

Use-case: with AMD hardware, we want to decode NV12 buffers via VA-API, then directly display them via KMS. This works fine if the KMS planes aren't rotated, but fails when we try to rotate them.

The reason is that VA-API gives us some LINEAR buffers and AMD display hardware can't rotate LINEAR buffers. We need tiled buffers.

To fix this, it would be nice to be able to provide a list of DRM modifiers when creating a VASurface. The driver would only be allowed to pick a modifier from this list.

This is how other APIs handle this: both GBM and Vulkan let users pass a list of modifiers when allocating memory.

We could add VASurfaceAttribDRMFormatModifiers, with a pointer to a list of modifiers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions