diff options
Diffstat (limited to 'source/x/mesa/patches/mesa.f93b7d14d66d8ba70d44772d1a1b6696310b7d17.patch')
-rw-r--r-- | source/x/mesa/patches/mesa.f93b7d14d66d8ba70d44772d1a1b6696310b7d17.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/source/x/mesa/patches/mesa.f93b7d14d66d8ba70d44772d1a1b6696310b7d17.patch b/source/x/mesa/patches/mesa.f93b7d14d66d8ba70d44772d1a1b6696310b7d17.patch new file mode 100644 index 00000000..bf3483a4 --- /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 + + |