venus: support VK_EXT_blend_operation_advanced

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33520>
This commit is contained in:
Yiwei Zhang 2025-02-12 00:06:41 -08:00 committed by Marge Bot
parent a7fccbbf85
commit 7c28f614a4
2 changed files with 9 additions and 3 deletions

View file

@ -577,6 +577,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_acquire_xlib_display DONE (anv, lvp, nvk, panvk, radv, tu, v3dv)
VK_EXT_attachment_feedback_loop_dynamic_state DONE (anv, lvp, radv, tu)
VK_EXT_attachment_feedback_loop_layout DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_blend_operation_advanced DONE (vn)
VK_EXT_border_color_swizzle DONE (anv, hasvk, lvp, nvk, radv/gfx10+, tu, v3dv, vn)
VK_EXT_buffer_device_address DONE (anv, hasvk, nvk, panvk, radv)
VK_EXT_calibrated_timestamps DONE (anv, hasvk, nvk, lvp, radv, vn, tu/a750+)

View file

@ -168,6 +168,8 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
/* EXT */
VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT attachment_feedback_loop_layout;
VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
blend_operation_advanced;
VkPhysicalDeviceBorderColorSwizzleFeaturesEXT border_color_swizzle;
VkPhysicalDeviceColorWriteEnableFeaturesEXT color_write_enable;
VkPhysicalDeviceConditionalRenderingFeaturesEXT conditional_rendering;
@ -274,6 +276,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
/* EXT */
VN_ADD_PNEXT_EXT(feats2, ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT, local_feats.attachment_feedback_loop_layout, exts->EXT_attachment_feedback_loop_layout);
VN_ADD_PNEXT_EXT(feats2, BLEND_OPERATION_ADVANCED_FEATURES_EXT, local_feats.blend_operation_advanced, exts->EXT_blend_operation_advanced);
VN_ADD_PNEXT_EXT(feats2, BORDER_COLOR_SWIZZLE_FEATURES_EXT, local_feats.border_color_swizzle, exts->EXT_border_color_swizzle);
VN_ADD_PNEXT_EXT(feats2, COLOR_WRITE_ENABLE_FEATURES_EXT, local_feats.color_write_enable, exts->EXT_color_write_enable);
VN_ADD_PNEXT_EXT(feats2, CONDITIONAL_RENDERING_FEATURES_EXT, local_feats.conditional_rendering, exts->EXT_conditional_rendering);
@ -318,9 +321,6 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
/* TODO: Add support for VK_EXT_sample_locations */
VN_SET_CORE_VALUE(feats, extendedDynamicState3SampleLocationsEnable,
false);
/* TODO: Add support for VK_EXT_blend_operation_advanced */
VN_SET_CORE_VALUE(feats, extendedDynamicState3ColorBlendAdvanced,
false);
/* VK_NV_* extensions required */
VN_SET_CORE_VALUE(feats, extendedDynamicState3ViewportWScalingEnable,
false);
@ -496,6 +496,8 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
VkPhysicalDeviceFragmentShadingRatePropertiesKHR fragment_shading_rate;
/* EXT */
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
blend_operation_advanced;
VkPhysicalDeviceConservativeRasterizationPropertiesEXT
conservative_rasterization;
VkPhysicalDeviceCustomBorderColorPropertiesEXT custom_border_color;
@ -556,6 +558,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
VN_ADD_PNEXT_EXT(props2, PUSH_DESCRIPTOR_PROPERTIES_KHR, local_props.push_descriptor, exts->KHR_push_descriptor);
/* EXT */
VN_ADD_PNEXT_EXT(props2, BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, local_props.blend_operation_advanced, exts->EXT_blend_operation_advanced);
VN_ADD_PNEXT_EXT(props2, CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, local_props.conservative_rasterization, exts->EXT_conservative_rasterization);
VN_ADD_PNEXT_EXT(props2, CUSTOM_BORDER_COLOR_PROPERTIES_EXT, local_props.custom_border_color, exts->EXT_custom_border_color);
VN_ADD_PNEXT_EXT(props2, EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT, local_props.extended_dynamic_state_3, exts->EXT_extended_dynamic_state3);
@ -617,6 +620,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
VN_SET_VK_PROPS_EXT(props, &local_props.push_descriptor, exts->KHR_push_descriptor);
/* EXT */
VN_SET_VK_PROPS_EXT(props, &local_props.blend_operation_advanced, exts->EXT_blend_operation_advanced);
VN_SET_VK_PROPS_EXT(props, &local_props.conservative_rasterization, exts->EXT_conservative_rasterization);
VN_SET_VK_PROPS_EXT(props, &local_props.custom_border_color, exts->EXT_custom_border_color);
VN_SET_VK_PROPS_EXT(props, &local_props.extended_dynamic_state_3, exts->EXT_extended_dynamic_state3);
@ -1086,6 +1090,7 @@ vn_physical_device_get_passthrough_extensions(
/* EXT */
.EXT_attachment_feedback_loop_layout = true,
.EXT_blend_operation_advanced = true,
.EXT_border_color_swizzle = true,
.EXT_calibrated_timestamps = true,
.EXT_color_write_enable = true,