zink: use 2 variant to check image format props during create
just to be pedantic Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9984>
This commit is contained in:
parent
733e07565f
commit
6433661cda
|
@ -43,7 +43,8 @@ import sys
|
|||
EXTENSIONS = [
|
||||
Extension("VK_EXT_debug_utils"),
|
||||
Extension("VK_KHR_get_physical_device_properties2",
|
||||
functions=["GetPhysicalDeviceFeatures2", "GetPhysicalDeviceProperties2", "GetPhysicalDeviceFormatProperties2"]),
|
||||
functions=["GetPhysicalDeviceFeatures2", "GetPhysicalDeviceProperties2",
|
||||
"GetPhysicalDeviceFormatProperties2", "GetPhysicalDeviceImageFormatProperties2"]),
|
||||
Extension("VK_MVK_moltenvk",
|
||||
nonstandard=True),
|
||||
]
|
||||
|
|
|
@ -392,8 +392,23 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
|
|||
*optimal_tiling = ici.tiling != VK_IMAGE_TILING_LINEAR;
|
||||
|
||||
VkImageFormatProperties image_props;
|
||||
if (vkGetPhysicalDeviceImageFormatProperties(screen->pdev, ici.format, ici.imageType,
|
||||
ici.tiling, ici.usage, ici.flags, &image_props) != VK_SUCCESS) {
|
||||
VkResult ret;
|
||||
if (screen->vk_GetPhysicalDeviceImageFormatProperties2) {
|
||||
VkImageFormatProperties2 props2 = {};
|
||||
props2.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
|
||||
VkPhysicalDeviceImageFormatInfo2 info = {};
|
||||
info.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
|
||||
info.format = ici.format;
|
||||
info.type = ici.imageType;
|
||||
info.tiling = ici.tiling;
|
||||
info.usage = ici.usage;
|
||||
info.flags = ici.flags;
|
||||
ret = screen->vk_GetPhysicalDeviceImageFormatProperties2(screen->pdev, &info, &props2);
|
||||
image_props = props2.imageFormatProperties;
|
||||
} else
|
||||
ret = vkGetPhysicalDeviceImageFormatProperties(screen->pdev, ici.format, ici.imageType,
|
||||
ici.tiling, ici.usage, ici.flags, &image_props);
|
||||
if (ret != VK_SUCCESS) {
|
||||
FREE(obj);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -105,6 +105,7 @@ struct zink_screen {
|
|||
PFN_vkGetPhysicalDeviceFeatures2 vk_GetPhysicalDeviceFeatures2;
|
||||
PFN_vkGetPhysicalDeviceProperties2 vk_GetPhysicalDeviceProperties2;
|
||||
PFN_vkGetPhysicalDeviceFormatProperties2 vk_GetPhysicalDeviceFormatProperties2;
|
||||
PFN_vkGetPhysicalDeviceImageFormatProperties2 vk_GetPhysicalDeviceImageFormatProperties2;
|
||||
|
||||
PFN_vkCmdDrawIndirectCount vk_CmdDrawIndirectCount;
|
||||
PFN_vkCmdDrawIndexedIndirectCount vk_CmdDrawIndexedIndirectCount;
|
||||
|
|
Loading…
Reference in New Issue