mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-14 08:22:25 -04:00
Allow direct access to the pixel data of linux_dmabuf_v1 buffers by
mmapping the FD. This causes a wait on any outstanding fences and also
triggers the DMA_BUF_SYNC mechanism to do any cache fiddling needed.
This doesn't support multi-planar formats (e.g. YUV420 from hardware
codecs)
I also fix the comment on wlr_renderer.render_buffer_caps (it's used for
textures, not the render target) and update
wlr_renderer_init_wl_display() and
wlr_linux_dmabuf_feedback_v1_init_with_options() to use the renderer's
own claimed buffer_caps instead of hardcoding DMABUF as required.
Loosely based on 46ef2cfa3c
41 lines
1.1 KiB
Meson
41 lines
1.1 KiB
Meson
subdir('wlr')
|
|
|
|
exclude_files = ['meson.build', 'config.h.in', 'version.h.in']
|
|
if not features.get('drm-backend')
|
|
exclude_files += 'backend/drm.h'
|
|
exclude_files += 'types/wlr_drm_lease_v1.h'
|
|
endif
|
|
if not features.get('libinput-backend')
|
|
exclude_files += 'backend/libinput.h'
|
|
endif
|
|
if not features.get('x11-backend')
|
|
exclude_files += 'backend/x11.h'
|
|
endif
|
|
if not features.get('xwayland')
|
|
exclude_files += 'xwayland.h'
|
|
endif
|
|
if not features.get('gles2-renderer')
|
|
exclude_files += ['render/egl.h', 'render/gles2.h']
|
|
endif
|
|
if not features.get('vulkan-renderer')
|
|
exclude_files += 'render/vulkan.h'
|
|
endif
|
|
if not features.get('session')
|
|
exclude_files += 'backend/session.h'
|
|
endif
|
|
|
|
install_subdir('wlr',
|
|
install_dir: get_option('includedir') / versioned_name,
|
|
exclude_files: exclude_files,
|
|
)
|
|
|
|
foreach name, have : internal_features
|
|
internal_config.set10('HAVE_' + name.underscorify().to_upper(), have)
|
|
endforeach
|
|
|
|
internal_config.set10('HAVE_LINUX_DMA_BUF_H', cc.has_header('linux/dma-buf.h'))
|
|
|
|
wlr_files += configure_file(
|
|
output: 'config.h',
|
|
configuration: internal_config,
|
|
)
|