mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-06-06 10:50:37 +00:00
mesa-pvr: convert bbappend into standalone alternative provider
There are some unobvious issues with adding PVR support to Mesa via a bbappend: 1. We need to mark mesa package as machine-specific, due to differences in builds between SGX, Rogue and software-rendering 2. We also need to then mark mesa package as providing safe ABIs (EGL/GLES/GBM) in order for all generic dependent packages to not be treated as machine-specific, allowing their re-use across different machines of the same architecture But doing the above alters the upstream mesa package and changes its signatures even when not building for TI platforms, which is a Yocto Project compliance violation. In order to resolve this issue, convert Mesa bbappend, that adds PVR support, into its own standalone alternative provider, called mesa-pvr and allow selecting it with PREFERRED_PROVIDER settings. Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> Signed-off-by: Ryan Eatmon <reatmon@ti.com>
This commit is contained in:
committed by
Ryan Eatmon
parent
f3a081a6c2
commit
24e9324551
@@ -19,7 +19,7 @@ LAYERDEPENDS_meta-ti-bsp = " \
|
||||
"
|
||||
|
||||
SIGGEN_EXCLUDERECIPES_ABISAFE += " \
|
||||
mesa \
|
||||
mesa-pvr \
|
||||
"
|
||||
|
||||
HOSTTOOLS_NONFATAL += "truncate xxd comm"
|
||||
|
||||
@@ -10,6 +10,7 @@ MACHINE_FEATURES += "screen gpu"
|
||||
SERIAL_CONSOLES = "115200;ttyS2"
|
||||
SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
|
||||
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
|
||||
|
||||
TFA_BOARD = "lite"
|
||||
|
||||
@@ -3,6 +3,7 @@ SOC_FAMILY:append = ":am62xx"
|
||||
|
||||
MACHINE_FEATURES += "screen gpu"
|
||||
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
|
||||
|
||||
# Default tiboot3.bin on AM62x is for HS-FS
|
||||
|
||||
@@ -3,6 +3,7 @@ SOC_FAMILY:append = ":am65xx"
|
||||
|
||||
MACHINE_FEATURES += "screen touchscreen gpu"
|
||||
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= ""
|
||||
|
||||
KERNEL_DEVICETREE_PREFIX = "ti/k3-am654"
|
||||
|
||||
@@ -3,6 +3,7 @@ SOC_FAMILY:append = ":j721e"
|
||||
|
||||
MACHINE_FEATURES += "screen gpu"
|
||||
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
|
||||
|
||||
# On J721e the file tiboot3.bin comes from the bootloader not ti-sci-fw
|
||||
|
||||
@@ -3,6 +3,7 @@ SOC_FAMILY:append = ":j721s2"
|
||||
|
||||
MACHINE_FEATURES += "screen gpu"
|
||||
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
|
||||
|
||||
TFA_BOARD = "generic"
|
||||
|
||||
@@ -3,6 +3,7 @@ SOC_FAMILY:append = ":j784s4"
|
||||
|
||||
MACHINE_FEATURES += "screen gpu"
|
||||
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-img-rogue-driver"
|
||||
|
||||
TFA_BOARD = "j784s4"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
PREFERRED_PROVIDER_virtual/mesa ?= "mesa-pvr"
|
||||
PREFERRED_PROVIDER_virtual/egl ?= "mesa-pvr"
|
||||
PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa-pvr"
|
||||
PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa-pvr"
|
||||
PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa-pvr"
|
||||
PREFERRED_PROVIDER_virtual/libgbm ?= "mesa-pvr"
|
||||
PREFERRED_PROVIDER_virtual/libglx ?= "mesa-pvr"
|
||||
PREFERRED_PROVIDER_virtual/libgl ?= "mesa-pvr"
|
||||
@@ -12,6 +12,7 @@ PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
|
||||
PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
|
||||
|
||||
# Graphics providers and variables
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= ""
|
||||
PVR_DISPLAY_CONTROLLER_ALIAS ?= "omapdrm"
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
|
||||
PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
|
||||
|
||||
# Graphics providers and variables
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= ""
|
||||
PVR_DISPLAY_CONTROLLER_ALIAS ?= "tilcdc"
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
|
||||
PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
|
||||
|
||||
# Graphics providers and variables
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= ""
|
||||
PVR_DISPLAY_CONTROLLER_ALIAS ?= "omapdrm"
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
|
||||
+6
-4
@@ -2,11 +2,13 @@
|
||||
# upstream yet. This allows us to build the shims we need without completely
|
||||
# clobbering mesa.
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
|
||||
require recipes-graphics/mesa/mesa.inc
|
||||
|
||||
SUMMARY += " (with PowerVR support for TI platforms)"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10"
|
||||
|
||||
BRANCH = "powervr/kirkstone/22.3.5"
|
||||
BRANCH = "powervr/kirkstone/${PV}"
|
||||
|
||||
SRC_URI = " \
|
||||
git://gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=${BRANCH} \
|
||||
@@ -38,7 +40,6 @@ PACKAGECONFIG:remove = "xvmc"
|
||||
PACKAGECONFIG[xvmc] = ""
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
PV = "22.3.5+pvr"
|
||||
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pvr', ',pvr', '', d)}"
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'sgx', ',sgx', '', d)}"
|
||||
@@ -50,6 +51,7 @@ do_install:append () {
|
||||
rm -rf ${D}${datadir}/pkgconfig
|
||||
}
|
||||
|
||||
FILES:mesa-vulkan-drivers += " ${libdir}/libpvr_mesa_wsi.so"
|
||||
FILES:${PN}-dev += "${datadir}/mesa/wayland-drm.xml"
|
||||
FILES:mesa-vulkan-drivers += "${libdir}/libpvr_mesa_wsi.so"
|
||||
|
||||
RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
|
||||
@@ -1 +0,0 @@
|
||||
require ${@bb.utils.contains_any('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver ti-sgx-ddk-km', 'pvr-mesa.inc', '', d)}
|
||||
Reference in New Issue
Block a user