Skip to content

Commit

Permalink
layer: Fix mismatch of setting and query types
Browse files Browse the repository at this point in the history
  • Loading branch information
christophe-lunarg committed Aug 3, 2023
1 parent a191ca0 commit 2272ff7
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 10 deletions.
36 changes: 27 additions & 9 deletions src/layer/vk_layer_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
*pValueCount = static_cast<std::uint32_t>(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;
}
Expand Down Expand Up @@ -176,7 +178,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
*pValueCount = static_cast<std::uint32_t>(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;
}
Expand Down Expand Up @@ -218,7 +222,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
*pValueCount = static_cast<std::uint32_t>(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;
}
Expand Down Expand Up @@ -260,7 +266,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
*pValueCount = static_cast<std::uint32_t>(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;
}
Expand Down Expand Up @@ -302,7 +310,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
*pValueCount = static_cast<std::uint32_t>(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;
}
Expand Down Expand Up @@ -344,7 +354,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
*pValueCount = static_cast<std::uint32_t>(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;
}
Expand Down Expand Up @@ -386,7 +398,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
*pValueCount = static_cast<std::uint32_t>(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;
}
Expand Down Expand Up @@ -428,7 +442,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
*pValueCount = static_cast<std::uint32_t>(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;
}
Expand Down Expand Up @@ -466,7 +482,9 @@ VkResult vlGetLayerSettingValues(VlLayerSettingSet layerSettingSet, const char *
*pValueCount = static_cast<std::uint32_t>(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;
}
Expand Down
2 changes: 1 addition & 1 deletion tests/layer/test_setting_api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
Expand Down

0 comments on commit 2272ff7

Please sign in to comment.