summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/vulkan/vulkan-wsi-layer_git.bb
blob: efa6accb34b10209e711fbd7962b93802885fee8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
DESCRIPTION = "Vulkan Window System Integration Layer"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c2e771b72d60a13d2de384cb49055d00"
DEPENDS = "libdrm vulkan-loader"

PV = "0.0+git${SRCPV}"

SRC_URI = "git://gitlab.freedesktop.org/mesa/vulkan-wsi-layer.git;protocol=https;branch=main \
           file://0001-MGS-6801-ccc-vkmark-on-wayland.patch \
           file://0002-MGS-6823-nxp-Add-support-of-VK_COMPOSITE_ALPHA_OPAQU.patch \
           file://0003-Update-minimum-version-of-CMake.patch"
SRCREV = "cb1a50cf7e640ad7306e673131ded98c0f133628"

inherit cmake pkgconfig

PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', 'headless', d)}"

PACKAGECONFIG[headless] = " \
    -DBUILD_WSI_HEADLESS=1, \
    -DBUILD_WSI_HEADLESS=0, \
    ,,, \
    wayland"
PACKAGECONFIG[wayland] = " \
    -DBUILD_WSI_WAYLAND=1 -DENABLE_WAYLAND_FIFO_PRESENTATION_THREAD=1 -DSELECT_EXTERNAL_ALLOCATOR=dma_buf_heaps, \
    -DBUILD_WSI_WAYLAND=0, \
    wayland wayland-native wayland-protocols,,, \
    headless"

EXTRA_OECMAKE = " \
    -DBUILD_WSI_DISPLAY=0 \
    -DBUILD_WSI_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN=1 \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_EXPORT_COMPILE_COMMANDS=1 \
    -DENABLE_INSTRUMENTATION=1 \
    -DKERNEL_HEADER_DIR=${KERNEL_HEADER_DIR} \
    -DVULKAN_WSI_LAYER_EXPERIMENTAL=0 "

# The KERNEL_HEADER_DIR setting is required by the CMake apparently
# in order to find the DRM headers. However, the Yocto build provides
# the DRM headers via a separate recipe libdrm in order to avoid the
# kernel dependency. The CMake fails if the variable is not defined,
# so set it to an invalid value in case the build ever actually needs
# the kernel headers for something else.
KERNEL_HEADER_DIR = "KERNEL_HEADER_DIR_NOT_PROVIDED_BY_YOCTO"

do_install() {
    install -d ${D}${sysconfdir}/vulkan/implicit_layer.d
    install -m 0755 ${B}/libVkLayer_window_system_integration.so ${D}${sysconfdir}/vulkan/implicit_layer.d/
    install -m 0644 ${B}/VkLayer_window_system_integration.json ${D}${sysconfdir}/vulkan/implicit_layer.d
}

# Adjust packaging variables for unversioned library
SOLIBS = ".so"
FILES_SOLIBSDEV = ""