tests: Mark a todo as resolved on MoltenVK 1.2.12.

Technically it is not, the Vulkan commands we're generating are
still not correct. But let's get rid of the failure message.
This commit is contained in:
Giovanni Mascellani
2025-03-28 14:30:54 +01:00
committed by Henri Verbeet
parent 653e4f47ac
commit 7b4a29da81
Notes: Henri Verbeet 2025-04-03 20:33:55 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1440
3 changed files with 23 additions and 2 deletions

View File

@@ -32901,7 +32901,7 @@ static void test_64kb_texture_alignment(void)
transition_resource_state(command_list, textures[1], transition_resource_state(command_list, textures[1],
D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_COPY_SOURCE); D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_COPY_SOURCE);
get_resource_readback_with_command_list(textures[1], 0, &rb, queue, command_list); get_resource_readback_with_command_list(textures[1], 0, &rb, queue, command_list);
todo_if(is_mvk_device(device)) todo_if(is_mvk_device_lt(device, 1, 2, 12))
check_readback_data_uint(&rb.rb, &box, 0xdeadbeef, 0); check_readback_data_uint(&rb.rb, &box, 0xdeadbeef, 0);
release_resource_readback(&rb); release_resource_readback(&rb);

View File

@@ -531,6 +531,11 @@ static inline bool is_mvk_device(ID3D12Device *device)
return false; return false;
} }
static inline bool is_mvk_device_lt(ID3D12Device *device, uint32_t major, uint32_t minor, uint32_t patch)
{
return false;
}
static inline bool is_macos_lt(unsigned int major, unsigned int minor, unsigned int patch) static inline bool is_macos_lt(unsigned int major, unsigned int minor, unsigned int patch)
{ {
return false; return false;
@@ -855,6 +860,22 @@ static inline bool is_mvk_device(ID3D12Device *device)
return properties.driverID == VK_DRIVER_ID_MOLTENVK; return properties.driverID == VK_DRIVER_ID_MOLTENVK;
} }
/* MoltenVK uses a different pattern than standard Vulkan. */
#define MVK_MAKE_API_VERSION(major, minor, patch) \
((((uint32_t)(major)) * 10000) + (((uint32_t)(minor)) * 100) + (uint32_t)(patch))
static inline bool is_mvk_device_lt(ID3D12Device *device, uint32_t major, uint32_t minor, uint32_t patch)
{
VkPhysicalDeviceDriverPropertiesKHR driver_properties;
VkPhysicalDeviceProperties device_properties;
get_driver_properties(device, &device_properties, &driver_properties);
if (driver_properties.driverID != VK_DRIVER_ID_MOLTENVK)
return false;
return device_properties.driverVersion < MVK_MAKE_API_VERSION(major, minor, patch);
}
#ifdef __APPLE__ #ifdef __APPLE__
static inline bool is_macos_lt(unsigned int major, unsigned int minor, unsigned int patch) static inline bool is_macos_lt(unsigned int major, unsigned int minor, unsigned int patch)

View File

@@ -421,7 +421,7 @@ static inline void vulkan_test_context_destroy(const struct vulkan_test_context
VK_CALL(vkDestroyInstance(context->instance, NULL)); VK_CALL(vkDestroyInstance(context->instance, NULL));
} }
/* This doesn't work for NVIDIA, because they use a different bit pattern. */ /* This doesn't work for NVIDIA or MoltenVK, because they use a different bit pattern. */
static inline bool is_vulkan_driver_version_ge(const VkPhysicalDeviceProperties *device_properties, static inline bool is_vulkan_driver_version_ge(const VkPhysicalDeviceProperties *device_properties,
const VkPhysicalDeviceDriverPropertiesKHR *driver_properties, const VkPhysicalDeviceDriverPropertiesKHR *driver_properties,
uint32_t major, uint32_t minor, uint32_t patch) uint32_t major, uint32_t minor, uint32_t patch)