From 66fc9f5571c5a6c6385616065f099a300fd62c05 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 21 Aug 2020 08:37:13 -0400 Subject: [PATCH] zink: support VK_EXT_blend_operation_advanced just the screen bits Reviewed-by: Erik Faye-Lund Part-of: --- src/gallium/drivers/zink/zink_device_info.py | 1 + src/gallium/drivers/zink/zink_screen.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/gallium/drivers/zink/zink_device_info.py b/src/gallium/drivers/zink/zink_device_info.py index afcabce..fe40617 100644 --- a/src/gallium/drivers/zink/zink_device_info.py +++ b/src/gallium/drivers/zink/zink_device_info.py @@ -61,6 +61,7 @@ def EXTENSIONS(): Extension("VK_EXT_vertex_attribute_divisor", alias="vdiv", properties=True, feature="vertexAttributeInstanceRateDivisor"), Extension("VK_EXT_calibrated_timestamps"), Extension("VK_EXT_custom_border_color", alias="border_color", properties=True, feature="customBorderColors"), + Extension("VK_EXT_blend_operation_advanced", alias="blend", properties=True), ] # There exists some inconsistencies regarding the enum constants, fix them. diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 6951f39..5fa2a4b 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -825,6 +825,11 @@ zink_internal_create_screen(struct sw_winsys *winsys, int fd, const struct pipe_ qci.queueCount = 1; qci.pQueuePriorities = &dummy; + /* TODO: we can probably support non-premul here with some work? */ + screen->info.have_EXT_blend_operation_advanced = screen->info.have_EXT_blend_operation_advanced && + screen->info.blend_props.advancedBlendNonPremultipliedSrcColor && + screen->info.blend_props.advancedBlendNonPremultipliedDstColor; + VkDeviceCreateInfo dci = {}; dci.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; dci.queueCreateInfoCount = 1; -- 2.7.4