diff --git a/src/layer/vk_layer_settings.cpp b/src/layer/vk_layer_settings.cpp index 21fe30a..a0c5370 100644 --- a/src/layer/vk_layer_settings.cpp +++ b/src/layer/vk_layer_settings.cpp @@ -134,7 +134,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char * *pValueCount = static_cast(settings.size()); } } else if (api_setting != nullptr) { // From Vulkan Layer Setting API - if (copy_values) { + if (api_setting->type != type) { + result = VK_ERROR_FORMAT_NOT_SUPPORTED; + } else if (copy_values) { if (*pValueCount < api_setting->count) { result = VK_INCOMPLETE; } @@ -176,7 +178,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char * *pValueCount = static_cast(settings.size()); } } else if (api_setting != nullptr) { // From Vulkan Layer Setting API - if (copy_values) { + if (api_setting->type != type) { + result = VK_ERROR_FORMAT_NOT_SUPPORTED; + } else if (copy_values) { if (*pValueCount < api_setting->count) { result = VK_INCOMPLETE; } @@ -218,7 +222,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char * *pValueCount = static_cast(settings.size()); } } else if (api_setting != nullptr) { // From Vulkan Layer Setting API - if (copy_values) { + if (api_setting->type != type) { + result = VK_ERROR_FORMAT_NOT_SUPPORTED; + } else if (copy_values) { if (*pValueCount < api_setting->count) { result = VK_INCOMPLETE; } @@ -260,7 +266,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char * *pValueCount = static_cast(settings.size()); } } else if (api_setting != nullptr) { // From Vulkan Layer Setting API - if (copy_values) { + if (api_setting->type != type) { + result = VK_ERROR_FORMAT_NOT_SUPPORTED; + } else if (copy_values) { if (*pValueCount < api_setting->count) { result = VK_INCOMPLETE; } @@ -302,7 +310,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char * *pValueCount = static_cast(settings.size()); } } else if (api_setting != nullptr) { // From Vulkan Layer Setting API - if (copy_values) { + if (api_setting->type != type) { + result = VK_ERROR_FORMAT_NOT_SUPPORTED; + } else if (copy_values) { if (*pValueCount < api_setting->count) { result = VK_INCOMPLETE; } @@ -344,7 +354,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char * *pValueCount = static_cast(settings.size()); } } else if (api_setting != nullptr) { // From Vulkan Layer Setting API - if (copy_values) { + if (api_setting->type != type) { + result = VK_ERROR_FORMAT_NOT_SUPPORTED; + } else if (copy_values) { if (*pValueCount < api_setting->count) { result = VK_INCOMPLETE; } @@ -386,7 +398,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char * *pValueCount = static_cast(settings.size()); } } else if (api_setting != nullptr) { // From Vulkan Layer Setting API - if (copy_values) { + if (api_setting->type != type) { + result = VK_ERROR_FORMAT_NOT_SUPPORTED; + } else if (copy_values) { if (*pValueCount < api_setting->count) { result = VK_INCOMPLETE; } @@ -428,7 +442,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char * *pValueCount = static_cast(settings.size()); } } else if (api_setting != nullptr) { // From Vulkan Layer Setting API - if (copy_values) { + if (api_setting->type != type) { + result = VK_ERROR_FORMAT_NOT_SUPPORTED; + } else if (copy_values) { if (*pValueCount < api_setting->count) { result = VK_INCOMPLETE; } @@ -466,7 +482,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char * *pValueCount = static_cast(settings_cache.size()); } } else if (api_setting != nullptr) { // From Vulkan Layer Setting API - if (copy_values) { + if (api_setting->type != type) { + result = VK_ERROR_FORMAT_NOT_SUPPORTED; + } else if (copy_values) { if (*pValueCount < api_setting->count) { result = VK_INCOMPLETE; } diff --git a/tests/layer/test_setting_api.cpp b/tests/layer/test_setting_api.cpp index 1304b09..80f3930 100644 --- a/tests/layer/test_setting_api.cpp +++ b/tests/layer/test_setting_api.cpp @@ -334,7 +334,7 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Uint64) { value_count = 1; VkResult result_incomplete = - vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_UINT32_EXT, &value_count, &values[0]); + vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_UINT64_EXT, &value_count, &values[0]); EXPECT_EQ(VK_INCOMPLETE, result_incomplete); EXPECT_EQ(76, values[0]); EXPECT_EQ(0, values[1]);