From 106e97a43a2cb402e656c47caa8f44f7f7ca6650 Mon Sep 17 00:00:00 2001 From: Juston Li Date: Wed, 7 Jun 2023 16:05:18 -0700 Subject: [PATCH] venus: enable VK_EXT_color_write_enable Signed-off-by: Juston Li Part-of: --- src/virtio/vulkan/vn_command_buffer.c | 9 +++++++++ src/virtio/vulkan/vn_physical_device.c | 3 +++ src/virtio/vulkan/vn_physical_device.h | 1 + 3 files changed, 13 insertions(+) diff --git a/src/virtio/vulkan/vn_command_buffer.c b/src/virtio/vulkan/vn_command_buffer.c index 428d78de02a..822c0491864 100644 --- a/src/virtio/vulkan/vn_command_buffer.c +++ b/src/virtio/vulkan/vn_command_buffer.c @@ -1970,6 +1970,15 @@ vn_CmdSetLogicOpEXT(VkCommandBuffer commandBuffer, VkLogicOp logicOp) VN_CMD_ENQUEUE(vkCmdSetLogicOpEXT, commandBuffer, logicOp); } +void +vn_CmdSetColorWriteEnableEXT(VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkBool32 *pColorWriteEnables) +{ + VN_CMD_ENQUEUE(vkCmdSetColorWriteEnableEXT, commandBuffer, attachmentCount, + pColorWriteEnables); +} + void vn_CmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer, uint32_t patchControlPoints) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 484c9d33f82..bc7a428d0a4 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -192,6 +192,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) /* EXT */ VN_ADD_PNEXT_EXT(feats2, BORDER_COLOR_SWIZZLE_FEATURES_EXT, feats->border_color_swizzle, exts->EXT_border_color_swizzle); + VN_ADD_PNEXT_EXT(feats2, COLOR_WRITE_ENABLE_FEATURES_EXT, feats->color_write_enable, exts->EXT_color_write_enable); VN_ADD_PNEXT_EXT(feats2, CONDITIONAL_RENDERING_FEATURES_EXT, feats->conditional_rendering, exts->EXT_conditional_rendering); VN_ADD_PNEXT_EXT(feats2, CUSTOM_BORDER_COLOR_FEATURES_EXT, feats->custom_border_color, exts->EXT_custom_border_color); VN_ADD_PNEXT_EXT(feats2, DEPTH_CLIP_CONTROL_FEATURES_EXT, feats->depth_clip_control, exts->EXT_depth_clip_control); @@ -1153,6 +1154,7 @@ vn_physical_device_get_passthrough_extensions( /* EXT */ .EXT_border_color_swizzle = true, .EXT_calibrated_timestamps = true, + .EXT_color_write_enable = true, .EXT_conditional_rendering = true, .EXT_conservative_rasterization = true, .EXT_custom_border_color = true, @@ -1805,6 +1807,7 @@ vn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, /* EXT */ CASE(BORDER_COLOR_SWIZZLE_FEATURES_EXT, border_color_swizzle); + CASE(COLOR_WRITE_ENABLE_FEATURES_EXT, color_write_enable); CASE(CONDITIONAL_RENDERING_FEATURES_EXT, conditional_rendering); CASE(CUSTOM_BORDER_COLOR_FEATURES_EXT, custom_border_color); CASE(DEPTH_CLIP_CONTROL_FEATURES_EXT, depth_clip_control); diff --git a/src/virtio/vulkan/vn_physical_device.h b/src/virtio/vulkan/vn_physical_device.h index fb957fb1c0d..729bd18fd5c 100644 --- a/src/virtio/vulkan/vn_physical_device.h +++ b/src/virtio/vulkan/vn_physical_device.h @@ -37,6 +37,7 @@ struct vn_physical_device_features { /* EXT */ VkPhysicalDeviceBorderColorSwizzleFeaturesEXT border_color_swizzle; + VkPhysicalDeviceColorWriteEnableFeaturesEXT color_write_enable; VkPhysicalDeviceConditionalRenderingFeaturesEXT conditional_rendering; VkPhysicalDeviceCustomBorderColorFeaturesEXT custom_border_color; VkPhysicalDeviceDepthClipControlFeaturesEXT depth_clip_control;