Skip to content

Draft: info: explain dmabuf formats/modifiers

This change explains the format-modifier pairs provided by zwp_linux_dmabuf_v1 in a bit more detail.

New version:

        'R8  '(0x20203852), 0x00ffffffffffffff; R8, invalid/implicit
        'R8  '(0x20203852), 0x0100000000000002; R8, intel + y_tiled
        'R8  '(0x20203852), 0x0100000000000001; R8, intel + x_tiled
        'R8  '(0x20203852), 0x0000000000000000; R8, linear
        'AR24'(0x34325241), 0x00ffffffffffffff; ARGB8888, invalid/implicit
        'AR24'(0x34325241), 0x0100000000000004; ARGB8888, intel + y_tiled_ccs
        'AR24'(0x34325241), 0x0100000000000002; ARGB8888, intel + y_tiled
        'AR24'(0x34325241), 0x0100000000000001; ARGB8888, intel + x_tiled
        'AR24'(0x34325241), 0x0000000000000000; ARGB8888, linear
        'XB4H'(0x48344258), 0x00ffffffffffffff; XBGR16161616F, invalid/implicit
        'XB4H'(0x48344258), 0x0100000000000004; XBGR16161616F, intel + y_tiled_ccs
        'XB4H'(0x48344258), 0x0100000000000002; XBGR16161616F, intel + y_tiled
        'XB4H'(0x48344258), 0x0100000000000001; XBGR16161616F, intel + x_tiled
        'XB4H'(0x48344258), 0x0000000000000000; XBGR16161616F, linear

Old version:

        'R8  '(0x20203852), modifier: 0x00ffffffffffffff
        'R8  '(0x20203852), modifier: 0x0100000000000002
        'R8  '(0x20203852), modifier: 0x0100000000000001
        'R8  '(0x20203852), modifier: 0x0000000000000000
        'AR24'(0x34325241), modifier: 0x00ffffffffffffff
        'AR24'(0x34325241), modifier: 0x0100000000000004
        'AR24'(0x34325241), modifier: 0x0100000000000002
        'AR24'(0x34325241), modifier: 0x0100000000000001
        'AR24'(0x34325241), modifier: 0x0000000000000000
        'XB4H'(0x48344258), modifier: 0x00ffffffffffffff
        'XB4H'(0x48344258), modifier: 0x0100000000000004
        'XB4H'(0x48344258), modifier: 0x0100000000000002
        'XB4H'(0x48344258), modifier: 0x0100000000000001
        'XB4H'(0x48344258), modifier: 0x0000000000000000

This is marked draft, because:

  • I have only tested this with Intel hardware, and have not yet verified that other modifier descriptions work correctly.
  • I still need to figure out how best to deal with the libdrm header dependency; require the latest version, use ifdefs on new symbols, or skip the dependency and replace all DRM_... symbols with their hex values.
Edited by M. Stoeckl

Merge request reports