vkd3d: Enable VK_EXT_external_memory_host.

Needed for OpenExistingHeapFromAddress and friends.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2020-08-19 11:53:42 +02:00
parent b2b730ea8b
commit 95b6596d75
3 changed files with 14 additions and 0 deletions

View File

@ -92,6 +92,7 @@ static const struct vkd3d_optional_extension_info optional_device_extensions[] =
VK_EXTENSION(EXT_TRANSFORM_FEEDBACK, EXT_transform_feedback),
VK_EXTENSION(EXT_VERTEX_ATTRIBUTE_DIVISOR, EXT_vertex_attribute_divisor),
VK_EXTENSION(EXT_EXTENDED_DYNAMIC_STATE, EXT_extended_dynamic_state),
VK_EXTENSION(EXT_EXTERNAL_MEMORY_HOST, EXT_external_memory_host),
/* AMD extensions */
VK_EXTENSION(AMD_SHADER_CORE_PROPERTIES, AMD_shader_core_properties),
VK_EXTENSION(AMD_SHADER_CORE_PROPERTIES_2, AMD_shader_core_properties2),
@ -719,6 +720,7 @@ static void vkd3d_physical_device_info_init(struct vkd3d_physical_device_info *i
VkPhysicalDeviceSubgroupSizeControlPropertiesEXT *subgroup_size_control_properties;
VkPhysicalDeviceInlineUniformBlockPropertiesEXT *inline_uniform_block_properties;
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *extended_dynamic_state_features;
VkPhysicalDeviceExternalMemoryHostPropertiesEXT *external_memory_host_properties;
VkPhysicalDeviceBufferDeviceAddressFeaturesKHR *buffer_device_address_features;
VkPhysicalDeviceCustomBorderColorPropertiesEXT *custom_border_color_properties;
VkPhysicalDeviceConditionalRenderingFeaturesEXT *conditional_rendering_features;
@ -781,6 +783,7 @@ static void vkd3d_physical_device_info_init(struct vkd3d_physical_device_info *i
robustness2_properties = &info->robustness2_properties;
robustness2_features = &info->robustness2_features;
extended_dynamic_state_features = &info->extended_dynamic_state_features;
external_memory_host_properties = &info->external_memory_host_properties;
info->features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
info->properties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
@ -919,6 +922,12 @@ static void vkd3d_physical_device_info_init(struct vkd3d_physical_device_info *i
vk_prepend_struct(&info->features2, extended_dynamic_state_features);
}
if (vulkan_info->EXT_external_memory_host)
{
external_memory_host_properties->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
vk_prepend_struct(&info->properties2, external_memory_host_properties);
}
if (vulkan_info->AMD_shader_core_properties)
{
shader_core_properties->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;

View File

@ -137,6 +137,7 @@ struct vkd3d_vulkan_info
bool EXT_transform_feedback;
bool EXT_vertex_attribute_divisor;
bool EXT_extended_dynamic_state;
bool EXT_external_memory_host;
/* AMD device extensions */
bool AMD_shader_core_properties;
bool AMD_shader_core_properties2;
@ -1677,6 +1678,7 @@ struct vkd3d_physical_device_info
VkPhysicalDeviceShaderSMBuiltinsPropertiesNV shader_sm_builtins_properties;
VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT sampler_filter_minmax_properties;
VkPhysicalDeviceRobustness2PropertiesEXT robustness2_properties;
VkPhysicalDeviceExternalMemoryHostPropertiesEXT external_memory_host_properties;
VkPhysicalDeviceProperties2KHR properties2;

View File

@ -223,6 +223,9 @@ VK_DEVICE_EXT_PFN(vkCmdSetPrimitiveTopologyEXT)
VK_DEVICE_EXT_PFN(vkCmdSetScissorWithCountEXT)
VK_DEVICE_EXT_PFN(vkCmdSetViewportWithCountEXT)
/* VK_EXT_external_memory_host */
VK_DEVICE_EXT_PFN(vkGetMemoryHostPointerPropertiesEXT)
/* VK_KHR_surface */
VK_INSTANCE_EXT_PFN(vkGetPhysicalDeviceSurfacePresentModesKHR)
VK_INSTANCE_EXT_PFN(vkGetPhysicalDeviceSurfaceSupportKHR)