diff options
Diffstat (limited to 'source/x')
-rwxr-xr-x | source/x/mesa/mesa.SlackBuild | 4 | ||||
-rw-r--r-- | source/x/mesa/patches/mesa.f93b7d14d66d8ba70d44772d1a1b6696310b7d17.patch | 48 |
2 files changed, 50 insertions, 2 deletions
diff --git a/source/x/mesa/mesa.SlackBuild b/source/x/mesa/mesa.SlackBuild index 67ace3b5a..a10c955ba 100755 --- a/source/x/mesa/mesa.SlackBuild +++ b/source/x/mesa/mesa.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=mesa VERSION=${VERSION:-$(echo $PKGNAM-[0-9]*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} DEMOVERS=${DEMOVERS:-8.4.0} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} BUILD_DEMOS=${BUILD_DEMOS:-YES} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -97,7 +97,7 @@ find . \ # git format-patch 93c2beafc0a7fa2f210b006d22aba61caa71f773 # 17.2.6 release if /bin/ls $CWD/patches/*.patch 1> /dev/null 2> /dev/null ; then for patch in $CWD/patches/*.patch ; do - patch -p1 < $patch || exit 1 ; + patch -p1 --verbose < $patch || exit 1 ; done fi diff --git a/source/x/mesa/patches/mesa.f93b7d14d66d8ba70d44772d1a1b6696310b7d17.patch b/source/x/mesa/patches/mesa.f93b7d14d66d8ba70d44772d1a1b6696310b7d17.patch new file mode 100644 index 000000000..bf3483a41 --- /dev/null +++ b/source/x/mesa/patches/mesa.f93b7d14d66d8ba70d44772d1a1b6696310b7d17.patch @@ -0,0 +1,48 @@ +From f93b7d14d66d8ba70d44772d1a1b6696310b7d17 Mon Sep 17 00:00:00 2001 +From: Witold Baryluk <witold.baryluk@gmail.com> +Date: Mon, 7 Dec 2020 20:45:42 +0000 +Subject: [PATCH] vulkan/device_select: Store Vulkan vendorID and deviceID as + uint32_t + +Vulkan uses 32-bit IDs, compared to PCI/USB 16-bit ones. + +Some driver vendorIDs do exceed 0xffff, including MESA (used by lavapipe). + +Without this, the value will be truncated, and device select layer +will not match expected (or any) device. + +Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3935 +Reviewed-by: Dave Airlie <airlied@redhat.com> +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7977> +--- + src/vulkan/device-select-layer/device_select.h | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/vulkan/device-select-layer/device_select.h b/src/vulkan/device-select-layer/device_select.h +index 23350707a33..248878fbc71 100644 +--- a/src/vulkan/device-select-layer/device_select.h ++++ b/src/vulkan/device-select-layer/device_select.h +@@ -24,10 +24,18 @@ + #define DEVICE_SELECT_H + + #include <stdbool.h> ++#include <stdint.h> + #include "xf86drm.h" + ++/* We don't use `drmPciDeviceInfo` because it uses 16-bit ids, ++ * instead of Vulkan's 32-bit ones. */ ++struct device_info { ++ uint32_t vendor_id; ++ uint32_t device_id; ++}; ++ + struct device_pci_info { +- drmPciDeviceInfo dev_info; ++ struct device_info dev_info; + drmPciBusInfo bus_info; + bool has_bus_info; + bool cpu_device; +-- +GitLab + + |