Skip to content

[Impeller] Add functionality to convert texture format and size. #135764

@jonahwilliams

Description

@jonahwilliams

This is likely going to be backend specific. Will be useful for implementing image resizing on the GPU, as well as for readback to specific pixel formats.

On Metal backends, this can likely just use MPSImageConversion and MPSImageScale - though we need to double check the availability.

For Vulkan, I think the blit pass itself is capable of converting pixel formats but I'm not smart enough to understand the spec for vkCmdBlitImage . If it can't do resizing, the we can create a render pass and draw the mipped texture - or do software resizing.

For OpenGL, we could probably just do sofware resizing/conversion. So we'd likely need a fallback regardless.

Needed for Texture readback APIs, as these currently bounce all of our pixel data through Skia.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Issues that are less important to the Flutter projecte: impellerImpeller rendering backend issues and features requestse: openglengineflutter/engine related. See also e: labels.r: fixedIssue is closed as already fixed in a newer versionteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions