diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c index ce0c3b91..ecdf6dbf 100644 --- a/libs/vkd3d/command.c +++ b/libs/vkd3d/command.c @@ -2222,7 +2222,7 @@ static bool vk_barrier_parameters_from_d3d12_resource_state(unsigned int state, if (!stencil_state || (stencil_state & D3D12_RESOURCE_STATE_DEPTH_WRITE)) *image_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; else - *image_layout = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL; + *image_layout = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR; } return true; @@ -2256,7 +2256,7 @@ static bool vk_barrier_parameters_from_d3d12_resource_state(unsigned int state, { if (stencil_state & D3D12_RESOURCE_STATE_DEPTH_WRITE) { - *image_layout = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL; + *image_layout = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR; *access_mask |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; } else diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index b51e2963..0575b492 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -73,6 +73,7 @@ static const struct vkd3d_optional_extension_info optional_instance_extensions[] static const char * const required_device_extensions[] = { VK_KHR_MAINTENANCE1_EXTENSION_NAME, + VK_KHR_MAINTENANCE2_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, }; @@ -91,7 +92,6 @@ static const struct vkd3d_optional_extension_info optional_device_extensions[] = VK_EXTENSION(KHR_DRAW_INDIRECT_COUNT, KHR_draw_indirect_count), VK_EXTENSION(KHR_GET_MEMORY_REQUIREMENTS_2, KHR_get_memory_requirements2), VK_EXTENSION(KHR_IMAGE_FORMAT_LIST, KHR_image_format_list), - VK_EXTENSION(KHR_MAINTENANCE2, KHR_maintenance2), VK_EXTENSION(KHR_MAINTENANCE3, KHR_maintenance3), VK_EXTENSION(KHR_PORTABILITY_SUBSET, KHR_portability_subset), VK_EXTENSION(KHR_PUSH_DESCRIPTOR, KHR_push_descriptor), diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index eab97715..cb184986 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -3094,7 +3094,7 @@ bool vkd3d_create_texture_view(struct d3d12_device *device, uint32_t magic, VkIm if (vk_image) { view_desc.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; - view_desc.pNext = NULL; + view_desc.pNext = &usage_desc; view_desc.flags = 0; view_desc.image = vk_image; view_desc.viewType = desc->view_type; @@ -3107,13 +3107,11 @@ bool vkd3d_create_texture_view(struct d3d12_device *device, uint32_t magic, VkIm view_desc.subresourceRange.levelCount = desc->miplevel_count; view_desc.subresourceRange.baseArrayLayer = desc->layer_idx; view_desc.subresourceRange.layerCount = desc->layer_count; - if (device->vk_info.KHR_maintenance2) - { - usage_desc.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO; - usage_desc.pNext = NULL; - usage_desc.usage = desc->usage; - view_desc.pNext = &usage_desc; - } + + usage_desc.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO; + usage_desc.pNext = NULL; + usage_desc.usage = desc->usage; + if ((vr = VK_CALL(vkCreateImageView(device->vk_device, &view_desc, NULL, &vk_view))) < 0) { WARN("Failed to create Vulkan image view, vr %d.\n", vr); diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index 2274579c..8982f582 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -127,7 +127,6 @@ struct vkd3d_vulkan_info bool KHR_draw_indirect_count; bool KHR_get_memory_requirements2; bool KHR_image_format_list; - bool KHR_maintenance2; bool KHR_maintenance3; bool KHR_portability_subset; bool KHR_push_descriptor;