aboutsummaryrefslogtreecommitdiff
path: root/graphics/libplacebo/vulkan.patch
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/libplacebo/vulkan.patch')
-rw-r--r--graphics/libplacebo/vulkan.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/graphics/libplacebo/vulkan.patch b/graphics/libplacebo/vulkan.patch
new file mode 100644
index 0000000000000..4d424ae310738
--- /dev/null
+++ b/graphics/libplacebo/vulkan.patch
@@ -0,0 +1,59 @@
+From 45e19e7bbbbfceb197d8826c775e16ef536a4565 Mon Sep 17 00:00:00 2001
+From: Niklas Haas <git@haasn.xyz>
+Date: Tue, 5 May 2020 00:13:49 +0200
+Subject: [PATCH] vulkan: get rid of deprecated enum members
+
+Maybe we should just get rid of the switch coverage check altogether. I
+wish we could somehow differentiate between enums defined in our code
+and enums defined externally.
+
+Fixes #71.
+---
+ src/vulkan/context.c | 4 +++-
+ src/vulkan/swapchain.c | 7 +------
+ 2 files changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/src/vulkan/context.c b/src/vulkan/context.c
+index 10928a9..14a57cf 100644
+--- a/src/vulkan/context.c
++++ b/src/vulkan/context.c
+@@ -685,7 +685,6 @@ VkPhysicalDevice pl_vulkan_choose_device(struct pl_context *ctx,
+ [VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU] = {"virtual", 3},
+ [VK_PHYSICAL_DEVICE_TYPE_CPU] = {"software", 2},
+ [VK_PHYSICAL_DEVICE_TYPE_OTHER] = {"other", 1},
+- [VK_PHYSICAL_DEVICE_TYPE_END_RANGE+1] = {0},
+ };
+
+ int best = 0;
+@@ -693,6 +692,9 @@ VkPhysicalDevice pl_vulkan_choose_device(struct pl_context *ctx,
+ VkPhysicalDeviceProperties props = {0};
+ GetPhysicalDeviceProperties(devices[i], &props);
+ VkPhysicalDeviceType t = props.deviceType;
++ if (t > PL_ARRAY_SIZE(types))
++ continue;
++
+ PL_INFO(vk, " GPU %d: %s (%s)", i, props.deviceName, types[t].name);
+
+ if (params->surface) {
+diff --git a/src/vulkan/swapchain.c b/src/vulkan/swapchain.c
+index bf6fd54..6bf40dd 100644
+--- a/src/vulkan/swapchain.c
++++ b/src/vulkan/swapchain.c
+@@ -138,13 +138,8 @@ static bool vk_map_color_space(VkColorSpaceKHR space, struct pl_color_space *out
+ return false;
+ #endif
+
+- // Included to satisfy the switch coverage check
+- case VK_COLOR_SPACE_RANGE_SIZE_KHR:
+- case VK_COLOR_SPACE_MAX_ENUM_KHR:
+- break;
++ default: return false;
+ }
+-
+- return false;
+ }
+
+ static bool pick_surf_format(const struct pl_gpu *gpu, const struct vk_ctx *vk,
+--
+2.26.2
+