tu: Trivially expose VK_EXT_rasterization_order_attachment_access

It is just a renamed VK_ARM_rasterization_order_attachment_access.

Zink depends on it to expose KHR_blend_equation_advanced_coherent

Passes GL tests via Zink:
 dEQP-GLES31.functional.blend_equation_advanced.*
 KHR-GLES31.core.blend_equation_advanced.*

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18420>
This commit is contained in:
Danylo Piliaiev
2022-09-05 18:42:03 +03:00
committed by Marge Bot
parent 1dfc5929d1
commit dda28a3e35
4 changed files with 12 additions and 10 deletions

View File

@@ -573,6 +573,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_primitives_generated_query DONE (anv, lvp, radv, tu) VK_EXT_primitives_generated_query DONE (anv, lvp, radv, tu)
VK_EXT_provoking_vertex DONE (anv, lvp, radv, tu, v3dv, vn) VK_EXT_provoking_vertex DONE (anv, lvp, radv, tu, v3dv, vn)
VK_EXT_queue_family_foreign DONE (anv, radv, tu, vn) VK_EXT_queue_family_foreign DONE (anv, radv, tu, vn)
VK_EXT_rasterization_order_attachment_access DONE (tu)
VK_EXT_robustness2 DONE (anv, lvp, radv, tu, vn) VK_EXT_robustness2 DONE (anv, lvp, radv, tu, vn)
VK_EXT_sample_locations DONE (anv, radv/gfx9-, tu/a650) VK_EXT_sample_locations DONE (anv, radv/gfx9-, tu/a650)
VK_EXT_shader_atomic_float DONE (anv, radv) VK_EXT_shader_atomic_float DONE (anv, radv)

View File

@@ -214,6 +214,7 @@ get_device_extensions(const struct tu_physical_device *device,
.EXT_pipeline_creation_cache_control = true, .EXT_pipeline_creation_cache_control = true,
.EXT_vertex_input_dynamic_state = true, .EXT_vertex_input_dynamic_state = true,
.EXT_attachment_feedback_loop_layout = true, .EXT_attachment_feedback_loop_layout = true,
.EXT_rasterization_order_attachment_access = true,
#ifndef TU_USE_KGSL #ifndef TU_USE_KGSL
.EXT_physical_device_drm = true, .EXT_physical_device_drm = true,
#endif #endif
@@ -813,9 +814,9 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
features->primitiveTopologyPatchListRestart = false; features->primitiveTopologyPatchListRestart = false;
break; break;
} }
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM: { case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM *features = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *features =
(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM *)ext; (VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *)ext;
features->rasterizationOrderColorAttachmentAccess = true; features->rasterizationOrderColorAttachmentAccess = true;
features->rasterizationOrderDepthAttachmentAccess = true; features->rasterizationOrderDepthAttachmentAccess = true;
features->rasterizationOrderStencilAttachmentAccess = true; features->rasterizationOrderStencilAttachmentAccess = true;

View File

@@ -836,9 +836,9 @@ tu_CreateRenderPass2(VkDevice _device,
subpass->srgb_cntl = 0; subpass->srgb_cntl = 0;
const VkSubpassDescriptionFlagBits raster_order_access_bits = const VkSubpassDescriptionFlagBits raster_order_access_bits =
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM | VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT |
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM | VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT |
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM; VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT;
subpass->raster_order_attachment_access = desc->flags & raster_order_access_bits; subpass->raster_order_attachment_access = desc->flags & raster_order_access_bits;

View File

@@ -3811,14 +3811,14 @@ tu_pipeline_builder_parse_rasterization_order(
if (builder->use_color_attachments) { if (builder->use_color_attachments) {
pipeline->raster_order_attachment_access = pipeline->raster_order_attachment_access =
blend_info->flags & blend_info->flags &
VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM; VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT;
} }
if (builder->depth_attachment_format != VK_FORMAT_UNDEFINED) { if (builder->depth_attachment_format != VK_FORMAT_UNDEFINED) {
pipeline->raster_order_attachment_access |= pipeline->raster_order_attachment_access |=
ds_info->flags & ds_info->flags &
(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM | (VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT |
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM); VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT);
} }
if (unlikely(builder->device->physical_device->instance->debug_flags & TU_DEBUG_RAST_ORDER)) if (unlikely(builder->device->physical_device->instance->debug_flags & TU_DEBUG_RAST_ORDER))
@@ -3832,7 +3832,7 @@ tu_pipeline_builder_parse_rasterization_order(
uint32_t gmem_prim_mode = NO_FLUSH; uint32_t gmem_prim_mode = NO_FLUSH;
if (pipeline->raster_order_attachment_access) { if (pipeline->raster_order_attachment_access) {
/* VK_ARM_rasterization_order_attachment_access: /* VK_EXT_rasterization_order_attachment_access:
* *
* This extension allow access to framebuffer attachments when used as * This extension allow access to framebuffer attachments when used as
* both input and color attachments from one fragment to the next, * both input and color attachments from one fragment to the next,