dzn: Support Vulkan 1.2

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20919>
This commit is contained in:
Jesse Natalie 2023-01-25 12:24:56 -08:00 committed by Marge Bot
parent 9d89b7e4a8
commit a08d6d8b59
3 changed files with 40 additions and 9 deletions

View file

@ -368,3 +368,10 @@ dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_u
dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_sint,Fail
dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_uint,Fail
dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_uint,Fail
# I don't see this locally, probably because I have a newer D3D that removed some bad barrier validation
dEQP-VK.image.depth_stencil_descriptor.depth_read_only_optimal.d32_sfloat.depth_att_stencil_none,Crash
# This is due to pretending to resolve stencil sample 0 using min
# This needs to be a blit shader instead, but that runs into problems since shader stencil export is optional
dEQP-VK.imageless_framebuffer.depth_stencil_resolve,Fail

View file

@ -43,6 +43,7 @@ spirv_to_nir_options = {
.subgroup_vote = true,
.subgroup_shuffle = true,
.subgroup_quad = true,
.descriptor_array_dynamic_indexing = true,
},
.ubo_addr_format = nir_address_format_32bit_index_offset,
.ssbo_addr_format = nir_address_format_32bit_index_offset,

View file

@ -64,7 +64,7 @@
#define DZN_USE_WSI_PLATFORM
#endif
#define DZN_API_VERSION VK_MAKE_VERSION(1, 1, VK_HEADER_VERSION)
#define DZN_API_VERSION VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)
#define MAX_TIER2_MEMORY_TYPES 3
@ -1358,7 +1358,7 @@ dzn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
const VkPhysicalDeviceVulkan12Features core_1_2 = {
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
.samplerMirrorClampToEdge = false,
.drawIndirectCount = false,
.drawIndirectCount = true,
.storageBuffer8BitAccess = false,
.uniformAndStorageBuffer8BitAccess = false,
.storagePushConstant8 = false,
@ -1391,12 +1391,12 @@ dzn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
.samplerFilterMinmax = false,
.scalarBlockLayout = false,
.imagelessFramebuffer = false,
.uniformBufferStandardLayout = false,
.shaderSubgroupExtendedTypes = false,
.separateDepthStencilLayouts = false,
.hostQueryReset = false,
.timelineSemaphore = false,
.imagelessFramebuffer = true,
.uniformBufferStandardLayout = true,
.shaderSubgroupExtendedTypes = true,
.separateDepthStencilLayouts = true,
.hostQueryReset = true,
.timelineSemaphore = true,
.bufferDeviceAddress = false,
.bufferDeviceAddressCaptureReplay = false,
.bufferDeviceAddressMultiDevice = false,
@ -1405,7 +1405,7 @@ dzn_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
.vulkanMemoryModelAvailabilityVisibilityChains = false,
.shaderOutputViewportIndex = false,
.shaderOutputLayer = false,
.subgroupBroadcastDynamicId = false,
.subgroupBroadcastDynamicId = true,
};
const VkPhysicalDeviceVulkan13Features core_1_3 = {
@ -3228,3 +3228,26 @@ dzn_DestroySamplerYcbcrConversion(VkDevice device,
{
unreachable("Ycbcr sampler conversion is not supported");
}
VKAPI_ATTR VkDeviceAddress VKAPI_CALL
dzn_GetBufferDeviceAddress(VkDevice device,
const VkBufferDeviceAddressInfo* pInfo)
{
struct dzn_buffer *buffer = dzn_buffer_from_handle(pInfo->buffer);
return buffer->gpuva;
}
VKAPI_ATTR uint64_t VKAPI_CALL
dzn_GetBufferOpaqueCaptureAddress(VkDevice device,
const VkBufferDeviceAddressInfo *pInfo)
{
return 0;
}
VKAPI_ATTR uint64_t VKAPI_CALL
dzn_GetDeviceMemoryOpaqueCaptureAddress(VkDevice device,
const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
{
return 0;
}