Skip to content

Add half-float texturing and rendering #114

Open
@anholt

Description

@anholt

Things we would need to do for sure:

  • Add the RGBA16f format to src/gallium/drivers/vc4/vc4_formats.c based on RGBA16f in V3D_IDENT1 bit 24

  • Add "is a float texture" to the texture shader key (v3d_setup_shared_key())

  • Update the kernel's vc4_validate.c to know about RGBA64's texture cpp.

  • Use "is a float texture" to do two texture loads per sample and unpack 16f instead of 8-bit unorm in vc4_program.c.

  • Add "is a float render target" to the FS key

  • Use "is a float render target" to do two writes to the render target with 16f components instead of one with 8-bit unorm components.

  • Update the kernel's vc4_render_cl.c to know about "HDR" color stores.

  • Apply workaround for HW-2619 and HW-2645 noted in the HW specifications at https://docs.broadcom.com/docs/12358545

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions