diff --git a/src/microsoft/ci/warp-fails.txt b/src/microsoft/ci/warp-fails.txt index a8ed565a664..4f070dc65c5 100644 --- a/src/microsoft/ci/warp-fails.txt +++ b/src/microsoft/ci/warp-fails.txt @@ -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 diff --git a/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c b/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c index 83061d018d3..28488eaa670 100644 --- a/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c +++ b/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c @@ -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, diff --git a/src/microsoft/vulkan/dzn_device.c b/src/microsoft/vulkan/dzn_device.c index 3603e02fe78..56440557caf 100644 --- a/src/microsoft/vulkan/dzn_device.c +++ b/src/microsoft/vulkan/dzn_device.c @@ -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; +}