radv: advertise VK_EXT_extended_dynamic_state3
Some tricky dynamic states still need to be implemented for full ds3 support with Zink, I will implement them later. Pass dEQP-VK.pipeline.*extended_dynamic_state* on NAVI21. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18882>
This commit is contained in:
parent
e48c0fbd8f
commit
59be3b8a8f
3 changed files with 45 additions and 1 deletions
|
|
@ -549,7 +549,7 @@ Khronos extensions that are not part of any Vulkan version:
|
|||
VK_EXT_depth_range_unrestricted DONE (radv, lvp)
|
||||
VK_EXT_discard_rectangles DONE (radv)
|
||||
VK_EXT_display_control DONE (anv, radv, tu)
|
||||
VK_EXT_extended_dynamic_state3 DONE (lvp)
|
||||
VK_EXT_extended_dynamic_state3 DONE (lvp, radv)
|
||||
VK_EXT_external_memory_dma_buf DONE (anv, pvr, radv, tu, v3dv, vn)
|
||||
VK_EXT_external_memory_host DONE (anv, lvp, radv)
|
||||
VK_EXT_filter_cubic DONE (tu/a650)
|
||||
|
|
|
|||
|
|
@ -11,3 +11,4 @@ VK_EXT_shader_atomic_float2 on lvp
|
|||
GL_NV_shader_atomic_float on llvmpipe
|
||||
VK_EXT_image_robustness on v3dv
|
||||
VK_EXT_extended_dynamic_state3 on lavapipe
|
||||
VK_EXT_extended_dynamic_state3 on RADV
|
||||
|
|
|
|||
|
|
@ -549,6 +549,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device
|
|||
#endif
|
||||
.EXT_extended_dynamic_state = true,
|
||||
.EXT_extended_dynamic_state2 = true,
|
||||
.EXT_extended_dynamic_state3 = true,
|
||||
.EXT_external_memory_dma_buf = true,
|
||||
.EXT_external_memory_host = device->rad_info.has_userptr,
|
||||
.EXT_global_priority = true,
|
||||
|
|
@ -1859,6 +1860,42 @@ radv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
|
|||
features->graphicsPipelineLibrary = true;
|
||||
break;
|
||||
}
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
|
||||
VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *features =
|
||||
(VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *)ext;
|
||||
features->extendedDynamicState3TessellationDomainOrigin = true;
|
||||
features->extendedDynamicState3PolygonMode = true;
|
||||
features->extendedDynamicState3SampleMask = true;
|
||||
features->extendedDynamicState3AlphaToCoverageEnable = pdevice->rad_info.gfx_level < GFX11;
|
||||
features->extendedDynamicState3LogicOpEnable = true;
|
||||
features->extendedDynamicState3LineStippleEnable = true;
|
||||
features->extendedDynamicState3ColorBlendEnable = false; /* TODO: Zink */
|
||||
features->extendedDynamicState3DepthClipEnable = true;
|
||||
features->extendedDynamicState3ConservativeRasterizationMode = true;
|
||||
features->extendedDynamicState3DepthClipNegativeOneToOne = true;
|
||||
features->extendedDynamicState3ProvokingVertexMode = !pdevice->use_ngg; /* TODO: NGG */
|
||||
features->extendedDynamicState3DepthClampEnable = true;
|
||||
features->extendedDynamicState3ColorWriteMask = false; /* TODO: Zink */
|
||||
features->extendedDynamicState3RasterizationSamples = false; /* TODO: Zink */
|
||||
features->extendedDynamicState3ColorBlendEquation = false; /* TODO: Zink */
|
||||
features->extendedDynamicState3SampleLocationsEnable = false; /* TODO: Zink */
|
||||
features->extendedDynamicState3LineRasterizationMode = false; /* TODO: Zink */
|
||||
features->extendedDynamicState3ExtraPrimitiveOverestimationSize = false;
|
||||
features->extendedDynamicState3AlphaToOneEnable = false;
|
||||
features->extendedDynamicState3RasterizationStream = false;
|
||||
features->extendedDynamicState3ColorBlendAdvanced = false;
|
||||
features->extendedDynamicState3ViewportWScalingEnable = false;
|
||||
features->extendedDynamicState3ViewportSwizzle = false;
|
||||
features->extendedDynamicState3CoverageToColorEnable = false;
|
||||
features->extendedDynamicState3CoverageToColorLocation = false;
|
||||
features->extendedDynamicState3CoverageModulationMode = false;
|
||||
features->extendedDynamicState3CoverageModulationTableEnable = false;
|
||||
features->extendedDynamicState3CoverageModulationTable = false;
|
||||
features->extendedDynamicState3CoverageReductionMode = false;
|
||||
features->extendedDynamicState3RepresentativeFragmentTestEnable = false;
|
||||
features->extendedDynamicState3ShadingRateImageEnable = false;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -2639,6 +2676,12 @@ radv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
|||
|
||||
break;
|
||||
}
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
|
||||
VkPhysicalDeviceExtendedDynamicState3PropertiesEXT *properties =
|
||||
(VkPhysicalDeviceExtendedDynamicState3PropertiesEXT *)ext;
|
||||
properties->dynamicPrimitiveTopologyUnrestricted = false;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue