Commit ca64275a authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

wined3d: Enable EXT_extended_dynamic_state3.

parent 2c88b69f
......@@ -243,6 +243,7 @@ struct wined3d_physical_device_info
{
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT dynamic_state_features;
VkPhysicalDeviceExtendedDynamicState2FeaturesEXT dynamic_state2_features;
VkPhysicalDeviceExtendedDynamicState3FeaturesEXT dynamic_state3_features;
VkPhysicalDeviceHostQueryResetFeatures host_query_reset_features;
VkPhysicalDeviceShaderDrawParametersFeatures draw_parameters_features;
VkPhysicalDeviceTransformFeedbackFeaturesEXT xfb_features;
......@@ -253,6 +254,7 @@ struct wined3d_physical_device_info
static void wined3d_disable_vulkan_features(struct wined3d_physical_device_info *info)
{
VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *dynamic_state3 = &info->dynamic_state3_features;
VkPhysicalDeviceFeatures *features = &info->features2.features;
features->depthBounds = VK_FALSE;
......@@ -280,6 +282,31 @@ static void wined3d_disable_vulkan_features(struct wined3d_physical_device_info
features->sparseResidency16Samples = VK_FALSE;
features->sparseResidencyAliased = VK_FALSE;
features->inheritedQueries = VK_FALSE;
dynamic_state3->extendedDynamicState3AlphaToOneEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3ColorBlendAdvanced = VK_FALSE;
dynamic_state3->extendedDynamicState3ConservativeRasterizationMode = VK_FALSE;
dynamic_state3->extendedDynamicState3CoverageModulationMode = VK_FALSE;
dynamic_state3->extendedDynamicState3CoverageModulationTable = VK_FALSE;
dynamic_state3->extendedDynamicState3CoverageModulationTableEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3CoverageReductionMode = VK_FALSE;
dynamic_state3->extendedDynamicState3CoverageToColorEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3CoverageToColorLocation = VK_FALSE;
dynamic_state3->extendedDynamicState3DepthClipEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3DepthClipNegativeOneToOne = VK_FALSE;
dynamic_state3->extendedDynamicState3ExtraPrimitiveOverestimationSize = VK_FALSE;
dynamic_state3->extendedDynamicState3LineRasterizationMode = VK_FALSE;
dynamic_state3->extendedDynamicState3LineStippleEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3LogicOpEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3PolygonMode = VK_FALSE;
dynamic_state3->extendedDynamicState3ProvokingVertexMode = VK_FALSE;
dynamic_state3->extendedDynamicState3RasterizationStream = VK_FALSE;
dynamic_state3->extendedDynamicState3RepresentativeFragmentTestEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3SampleLocationsEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3ShadingRateImageEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3TessellationDomainOrigin = VK_FALSE;
dynamic_state3->extendedDynamicState3ViewportWScalingEnable = VK_FALSE;
dynamic_state3->extendedDynamicState3ViewportSwizzle = VK_FALSE;
}
static struct wined3d_allocator_chunk *wined3d_allocator_vk_create_chunk(struct wined3d_allocator *allocator,
......@@ -339,6 +366,7 @@ static const struct wined3d_allocator_ops wined3d_allocator_vk_ops =
static void get_physical_device_info(const struct wined3d_adapter_vk *adapter_vk, struct wined3d_physical_device_info *info)
{
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *vertex_divisor_features = &info->vertex_divisor_features;
VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *dynamic_state3_features = &info->dynamic_state3_features;
VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *dynamic_state2_features = &info->dynamic_state2_features;
VkPhysicalDeviceShaderDrawParametersFeatures *draw_parameters_features = &info->draw_parameters_features;
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *dynamic_state_features = &info->dynamic_state_features;
......@@ -365,8 +393,11 @@ static void get_physical_device_info(const struct wined3d_adapter_vk *adapter_vk
host_query_reset_features->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
host_query_reset_features->pNext = vertex_divisor_features;
dynamic_state3_features->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT;
dynamic_state3_features->pNext = host_query_reset_features;
dynamic_state2_features->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT;
dynamic_state2_features->pNext = host_query_reset_features;
dynamic_state2_features->pNext = dynamic_state3_features;
dynamic_state_features->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
dynamic_state_features->pNext = dynamic_state2_features;
......@@ -2374,6 +2405,7 @@ static bool wined3d_adapter_vk_init_device_extensions(struct wined3d_adapter_vk
{
{VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_API_VERSION_1_3},
{VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_API_VERSION_1_3},
{VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME, ~0u},
{VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_API_VERSION_1_2},
{VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME, ~0u},
{VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, ~0u},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment