From 16c47ad3474ecc9f1b76084d85a8f7aa2c6b3cc6 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 14 Jun 2022 10:30:54 +0200 Subject: [PATCH] radv: advertise VK_EXT_border_color_swizzle on GFX10+ On GFX9 and older, the driver needs to swizzle itself it seems. Exposing it on GFX10+, allows us to test it with Zink, at least. Signed-off-by: Samuel Pitoiset Acked-by: Mike Blumenkrantz Part-of: --- docs/features.txt | 2 +- docs/relnotes/new_features.txt | 2 +- src/amd/vulkan/radv_device.c | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index cfb5fe80390..4fa36e7f7de 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -529,7 +529,7 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_win32_surface DONE (lvp) VK_KHR_xcb_surface DONE (anv, lvp, radv, tu, v3dv, vn) VK_KHR_xlib_surface DONE (anv, lvp, radv, tu, v3dv, vn) - VK_EXT_border_color_swizzle DONE (anv, lvp, tu) + VK_EXT_border_color_swizzle DONE (anv, lvp, tu, radv/gfx10+) VK_EXT_buffer_device_address DONE (radv) VK_EXT_calibrated_timestamps DONE (anv, lvp, radv) VK_EXT_color_write_enable DONE (anv, lvp, radv, tu, v3dv) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 71dd4caf62d..3b0033ac016 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -7,4 +7,4 @@ vertexAttributeInstanceRateZeroDivisor support for lavapipe panfrost Valhall support (conformant OpenGL ES 3.1 on Mali-G57) VK_EXT_primitives_generated_query on RADV VK_EXT_non_seamless_cube_map on RADV, ANV -VK_EXT_border_color_swizzle on lavapipe, ANV, turnip +VK_EXT_border_color_swizzle on lavapipe, ANV, turnip, RADV diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index c0c56514bad..206df78ffe1 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -467,6 +467,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .KHR_workgroup_memory_explicit_layout = true, .KHR_zero_initialize_workgroup_memory = true, .EXT_4444_formats = true, + .EXT_border_color_swizzle = device->rad_info.gfx_level >= GFX10, .EXT_buffer_device_address = true, .EXT_calibrated_timestamps = RADV_SUPPORT_CALIBRATED_TIMESTAMPS, .EXT_color_write_enable = true, @@ -1770,6 +1771,13 @@ radv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, features->nonSeamlessCubeMap = true; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: { + VkPhysicalDeviceBorderColorSwizzleFeaturesEXT *features = + (VkPhysicalDeviceBorderColorSwizzleFeaturesEXT *)ext; + features->borderColorSwizzle = true; + features->borderColorSwizzleFromImage = true; + break; + } default: break; }