49 lines
2.1 KiB
C++
49 lines
2.1 KiB
C++
# =========================================================================
|
|
# GPU
|
|
# =========================================================================
|
|
GPU_USERLAND_LIBRARIES_WAYLAND ?= "gcnano-userland-multi-binary-stm32mp"
|
|
GPU_USERLAND_LIBRARIES_EGLFS ?= "gcnano-userland-multi-binary-stm32mp"
|
|
GPU_USERLAND_LIBRARIES_X11 ?= "mesa"
|
|
|
|
# Helper function for overloading the default EGL/GLES implementation.
|
|
# The Vivante libraries are compatible with the Mesa headers
|
|
# but we can have several backend available following the distro configuration:
|
|
# - wayland
|
|
# - x11
|
|
# - wayland + x11
|
|
# - framebuffer
|
|
# - drm
|
|
|
|
def get_gpu_vivante_handler(d):
|
|
""" Overloading the default EGL/GLES/mesa implementation."""
|
|
machine_features = d.getVar('MACHINE_FEATURES').split()
|
|
distro_features = d.getVar('DISTRO_FEATURES').split()
|
|
|
|
gpu_lib_wayland = d.getVar('GPU_USERLAND_LIBRARIES_WAYLAND').split()
|
|
gpu_lib_eglfs = d.getVar('GPU_USERLAND_LIBRARIES_EGLFS').split()
|
|
gpu_lib_x11 = d.getVar('GPU_USERLAND_LIBRARIES_X11').split()
|
|
|
|
if 'gpu' in machine_features:
|
|
if 'wayland' in distro_features:
|
|
provider = gpu_lib_wayland[0]
|
|
else:
|
|
if 'x11' in distro_features:
|
|
provider = gpu_lib_x11[0]
|
|
else:
|
|
'''no wayland, no X11 -> choose DRM/FB for eglfs'''
|
|
provider = gpu_lib_eglfs[0]
|
|
else:
|
|
provider = "mesa"
|
|
|
|
return provider;
|
|
|
|
GPU_USERLAND_LIBRARIES_INSTALL = "${@get_gpu_vivante_handler(d)}"
|
|
|
|
PREFERRED_PROVIDER_virtual/egl = "${@get_gpu_vivante_handler(d)}"
|
|
PREFERRED_PROVIDER_virtual/libgles1 = "${@get_gpu_vivante_handler(d)}"
|
|
PREFERRED_PROVIDER_virtual/libgles2 = "${@get_gpu_vivante_handler(d)}"
|
|
PREFERRED_PROVIDER_virtual/libgles3 = "${@get_gpu_vivante_handler(d)}"
|
|
PREFERRED_PROVIDER_virtual/libgbm = "${@get_gpu_vivante_handler(d)}"
|
|
PREFERRED_PROVIDER_virtual/mesa = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/egl','mesa','mesa','mesa-gl',d)}"
|
|
PREFERRED_PROVIDER_virtual/libgl = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/egl','mesa','mesa','mesa-gl',d)}"
|