Skip to content

Support for high bit depth screencopy buffers #155

@mstoeckl

Description

@mstoeckl

wlroots will eventually be able to render to 10-bit or higher internal buffers. (See swaywm/wlroots#1378.) † The internal buffers determine what buffer formats are requested by zwlr_screencopy_frame_v1.buffer; so for example, with 10-bit buffers, XBGR2101010 or ABGR2101010 would be sent; and with half-float formats, ABGR16161616F or XBGR16161616F would be sent.

It will probably be a long time before support for these formats will be needed; but I am making this issue now, as this task may be difficult. Currently, ffmpeg does not have any direct equivalents for the above formats, so it may be necessary to add a format conversion step to wf-recorder. (For example, the closest thing to WL_SHM_FORMAT_XBGR2101010 is AV_PIX_FMT_X2RGB10LE, which has red and blue channels switched.)

In case you want to test wlroots with higher bit depth earlier, I have made experimental branches for 10 and 16float internal depth; 16 bit depth may become possible in a few months. Edit: wlroots now supports changing the render buffer format; I made a Sway PR, swaywm/sway#6475, which adds a setting to control this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions