bug 14537: Improve VkImageFormatProperties
diff --git a/include/vulkan.h b/include/vulkan.h
index 092a086..bea31ac 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -2096,7 +2096,7 @@
typedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
-typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageFormatProperties* pImageFormatProperties);
+typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkQueueFamilyProperties* pQueueFamilyProperties);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
@@ -2274,6 +2274,7 @@
VkImageType type,
VkImageTiling tiling,
VkImageUsageFlags usage,
+ VkImageCreateFlags flags,
VkImageFormatProperties* pImageFormatProperties);
VkResult VKAPI vkGetPhysicalDeviceProperties(
diff --git a/layers/device_limits.cpp b/layers/device_limits.cpp
index 49f5103..c8ff7fc 100644
--- a/layers/device_limits.cpp
+++ b/layers/device_limits.cpp
@@ -228,9 +228,9 @@
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageFormatProperties* pImageFormatProperties)
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties)
{
- VkResult result = get_dispatch_table(device_limits_instance_table_map, physicalDevice)->GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, pImageFormatProperties);
+ VkResult result = get_dispatch_table(device_limits_instance_table_map, physicalDevice)->GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
return result;
}
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 308f983..f943ad3 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -2067,6 +2067,7 @@
VkImageType type,
VkImageTiling tiling,
VkImageUsageFlags usage,
+ VkImageCreateFlags flags,
VkImageFormatProperties* pImageFormatProperties,
VkResult result)
{
@@ -2116,11 +2117,12 @@
VkImageType type,
VkImageTiling tiling,
VkImageUsageFlags usage,
+ VkImageCreateFlags flags,
VkImageFormatProperties* pImageFormatProperties)
{
- VkResult result = get_dispatch_table(pc_instance_table_map, physicalDevice)->GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, pImageFormatProperties);
+ VkResult result = get_dispatch_table(pc_instance_table_map, physicalDevice)->GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
- PostGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, pImageFormatProperties, result);
+ PostGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties, result);
return result;
}
diff --git a/loader/loader.c b/loader/loader.c
index a434b59..db15fbc 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -2872,6 +2872,7 @@
VkImageType type,
VkImageTiling tiling,
VkImageUsageFlags usage,
+ VkImageCreateFlags flags,
VkImageFormatProperties* pImageFormatProperties)
{
uint32_t gpu_index;
@@ -2880,7 +2881,7 @@
if (icd->GetPhysicalDeviceImageFormatProperties)
res = icd->GetPhysicalDeviceImageFormatProperties(physicalDevice, format,
- type, tiling, usage, pImageFormatProperties);
+ type, tiling, usage, flags, pImageFormatProperties);
return res;
}
diff --git a/loader/loader.h b/loader/loader.h
index 67fa20e..19711d9 100644
--- a/loader/loader.h
+++ b/loader/loader.h
@@ -287,12 +287,12 @@
VkFormat format,
VkFormatProperties* pFormatInfo);
-VkResult VKAPI loader_GetPhysicalDeviceImageFormatProperties(
- VkPhysicalDevice physicalDevice,
+VkResult VKAPI loader_GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,
VkFormat format,
VkImageType type,
VkImageTiling tiling,
VkImageUsageFlags usage,
+ VkImageCreateFlags flags,
VkImageFormatProperties* pImageFormatProperties);
VkResult VKAPI loader_GetPhysicalDeviceSparseImageFormatProperties(
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 6a9e25b..0d13e66 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -242,13 +242,13 @@
return res;
}
-LOADER_EXPORT VkResult VKAPI vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageFormatProperties* pImageFormatProperties)
+LOADER_EXPORT VkResult VKAPI vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties)
{
const VkLayerInstanceDispatchTable *disp;
VkResult res;
disp = loader_get_instance_dispatch(physicalDevice);
- res = disp->GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, pImageFormatProperties);
+ res = disp->GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
return res;
}
diff --git a/vulkan.py b/vulkan.py
index 2c06d30..4f16ac0 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -244,6 +244,7 @@
Param("VkImageType", "type"),
Param("VkImageTiling", "tiling"),
Param("VkImageUsageFlags", "usage"),
+ Param("VkImageCreateFlags", "flags"),
Param("VkImageFormatProperties*", "pImageFormatProperties")]),
Proto("PFN_vkVoidFunction", "GetInstanceProcAddr",