aboutsummaryrefslogtreecommitdiff
path: root/layers/image.cpp
diff options
context:
space:
mode:
authorChris Forbes <chrisf@ijw.co.nz>2015-06-21 22:55:02 +1200
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-06-24 15:38:03 -0600
commitf576a3edbd003797df3ca6995160e093f14c9f9d (patch)
tree995503307e3b555f0c3a608cbfa1f9ca7ecb999f /layers/image.cpp
parent52b161e51097b2e0322b130b85ca94336f56733a (diff)
downloadusermoji-f576a3edbd003797df3ca6995160e093f14c9f9d.tar.xz
vulkan.h: Remove vkGetFormatInfo, add features/limits (#12827, v125)
NOTES: 1/ Some layers impact from vkGetFormatInfo -> vkGetPhysicalDeviceFormatInfo; some checks are currently disabled in ParamChecker pending discussion on the best way to do this. Similar checks in Image layer implemented via additional layer_data member to link back from VkDevice -> VkPhysicalDevice. 2/ VkPhysicalDeviceFeatures, VkPhysicalDeviceLimits members all zero for now; also some further churn to be done to the contents of these structures. Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Diffstat (limited to 'layers/image.cpp')
-rw-r--r--layers/image.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/layers/image.cpp b/layers/image.cpp
index cac66a5a..28caa389 100644
--- a/layers/image.cpp
+++ b/layers/image.cpp
@@ -46,6 +46,7 @@
typedef struct _layer_data {
debug_report_data *report_data;
VkDbgMsgCallback logging_callback;
+ VkPhysicalDevice physicalDevice;
} layer_data;
static std::unordered_map<void*, layer_data*> layer_data_map;
@@ -177,6 +178,7 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDevice(VkPhysicalDevice physicalDevice, c
layer_data *instance_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
layer_data *device_data = get_my_data_ptr(get_dispatch_key(*pDevice), layer_data_map);
device_data->report_data = layer_debug_report_create_device(instance_data->report_data, *pDevice);
+ device_data->physicalDevice = physicalDevice;
}
return result;
@@ -293,10 +295,10 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateImage(VkDevice device, const VkImageCreat
{
if(pCreateInfo->format != VK_FORMAT_UNDEFINED)
{
+ layer_data *device_data = (layer_data *) mdd(device);
VkFormatProperties properties;
- size_t size = sizeof(properties);
- VkResult result = get_dispatch_table(image_device_table_map, device)->GetFormatInfo(device, pCreateInfo->format,
- VK_FORMAT_INFO_TYPE_PROPERTIES, &size, &properties);
+ VkResult result = get_dispatch_table(image_instance_table_map, device_data->physicalDevice)->GetPhysicalDeviceFormatInfo(
+ device_data->physicalDevice, pCreateInfo->format, &properties);
if(result != VK_SUCCESS)
{
char const str[] = "vkCreateImage parameter, VkFormat pCreateInfo->format, cannot be validated";
@@ -321,10 +323,10 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateRenderPass(VkDevice device, const VkRende
{
if(pCreateInfo->pColorFormats[i] != VK_FORMAT_UNDEFINED)
{
+ layer_data *device_data = (layer_data *) mdd(device);
VkFormatProperties properties;
- size_t size = sizeof(properties);
- VkResult result = get_dispatch_table(image_device_table_map, device)->GetFormatInfo(device, pCreateInfo->pColorFormats[i],
- VK_FORMAT_INFO_TYPE_PROPERTIES, &size, &properties);
+ VkResult result = get_dispatch_table(image_instance_table_map, device_data->physicalDevice)->GetPhysicalDeviceFormatInfo(
+ device_data->physicalDevice, pCreateInfo->pColorFormats[i], &properties);
if(result != VK_SUCCESS)
{
std::stringstream ss;
@@ -384,10 +386,10 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateRenderPass(VkDevice device, const VkRende
if(pCreateInfo->depthStencilFormat != VK_FORMAT_UNDEFINED)
{
+ layer_data *device_data = (layer_data *) mdd(device);
VkFormatProperties properties;
- size_t size = sizeof(properties);
- VkResult result = get_dispatch_table(image_device_table_map, device)->GetFormatInfo(device, pCreateInfo->depthStencilFormat,
- VK_FORMAT_INFO_TYPE_PROPERTIES, &size, &properties);
+ VkResult result = get_dispatch_table(image_instance_table_map, device_data->physicalDevice)->GetPhysicalDeviceFormatInfo(
+ device_data->physicalDevice, pCreateInfo->depthStencilFormat, &properties);
if(result != VK_SUCCESS)
{
char const str[] = "vkCreateRenderPass parameter, VkFormat pCreateInfo->depthStencilFormat, cannot be validated";