layer: add layer settings set to handle multiple instances

This commit is contained in:
Christophe 2023-06-05 18:56:23 +02:00 committed by Christophe
parent 3f2d178323
commit c9f8cebf72
7 changed files with 306 additions and 194 deletions

View file

@ -24,9 +24,13 @@
#include <vector>
TEST(test_layer_setting_api, vlHasLayerSetting_NotFound) {
vlInitLayerSettings("VK_LAYER_LUNARG_test", nullptr, nullptr);
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
EXPECT_FALSE(vlHasLayerSetting("setting_key"));
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", nullptr, nullptr, nullptr, &layerSettingSet);
EXPECT_FALSE(vlHasLayerSetting(layerSettingSet, "setting_key"));
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlHasLayerSetting_Found) {
@ -45,13 +49,12 @@ TEST(test_layer_setting_api, vlHasLayerSetting_Found) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlHasLayerSetting) {
@ -136,22 +139,21 @@ TEST(test_layer_setting_api, vlHasLayerSetting) {
layer_settings_create_info.settingCount = static_cast<uint32_t>(settings.size());
layer_settings_create_info.pSettings = &settings[0];
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
// The expected layer code side:
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
EXPECT_FALSE(vlHasLayerSetting("setting0"));
EXPECT_TRUE(vlHasLayerSetting("bool_value"));
EXPECT_TRUE(vlHasLayerSetting("int32_value"));
EXPECT_TRUE(vlHasLayerSetting("int64_value"));
EXPECT_TRUE(vlHasLayerSetting("uint32_value"));
EXPECT_TRUE(vlHasLayerSetting("uint64_value"));
EXPECT_TRUE(vlHasLayerSetting("float_value"));
EXPECT_TRUE(vlHasLayerSetting("double_value"));
EXPECT_TRUE(vlHasLayerSetting("frameset_value"));
EXPECT_FALSE(vlHasLayerSetting(layerSettingSet, "setting0"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "bool_value"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "int32_value"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "int64_value"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "uint32_value"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "uint64_value"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "float_value"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "double_value"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "frameset_value"));
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlGetLayerSettingValues_Bool) {
@ -163,34 +165,36 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Bool) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
uint32_t value_count = 0;
VkResult result_count = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_BOOL_EXT, &value_count, nullptr);
VkResult result_count =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_BOOL_EXT, &value_count, nullptr);
EXPECT_EQ(VK_SUCCESS, result_count);
EXPECT_EQ(2, value_count);
std::vector<VkBool32> values(static_cast<uint32_t>(value_count));
value_count = 1;
VkResult result_incomplete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_BOOL_EXT, &value_count, &values[0]);
VkResult result_incomplete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_BOOL_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_INCOMPLETE, result_incomplete);
EXPECT_EQ(VK_TRUE, values[0]);
EXPECT_EQ(VK_FALSE, values[1]);
EXPECT_EQ(1, value_count);
value_count = 2;
VkResult result_complete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_BOOL_EXT, &value_count, &values[0]);
VkResult result_complete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_BOOL_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_SUCCESS, result_complete);
EXPECT_EQ(VK_TRUE, values[0]);
EXPECT_EQ(VK_FALSE, values[1]);
EXPECT_EQ(2, value_count);
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlGetLayerSettingValues_Int32) {
@ -202,34 +206,36 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Int32) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
uint32_t value_count = 2;
VkResult result_count = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_INT32_EXT, &value_count, nullptr);
VkResult result_count =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_INT32_EXT, &value_count, nullptr);
EXPECT_EQ(VK_SUCCESS, result_count);
EXPECT_EQ(2, value_count);
std::vector<std::int32_t> values(static_cast<uint32_t>(value_count));
value_count = 1;
VkResult result_incomplete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_INT32_EXT, &value_count, &values[0]);
VkResult result_incomplete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_INT32_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_INCOMPLETE, result_incomplete);
EXPECT_EQ(76, values[0]);
EXPECT_EQ(0, values[1]);
EXPECT_EQ(1, value_count);
value_count = 2;
VkResult result_complete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_INT32_EXT, &value_count, &values[0]);
VkResult result_complete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_INT32_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_SUCCESS, result_complete);
EXPECT_EQ(76, values[0]);
EXPECT_EQ(-82, values[1]);
EXPECT_EQ(2, value_count);
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlGetLayerSettingValues_Int64) {
@ -241,34 +247,36 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Int64) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
uint32_t value_count = 2;
VkResult result_count = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_INT64_EXT, &value_count, nullptr);
VkResult result_count =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_INT64_EXT, &value_count, nullptr);
EXPECT_EQ(VK_SUCCESS, result_count);
EXPECT_EQ(2, value_count);
std::vector<std::int64_t> values(static_cast<uint32_t>(value_count));
value_count = 1;
VkResult result_incomplete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_INT64_EXT, &value_count, &values[0]);
VkResult result_incomplete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_INT64_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_INCOMPLETE, result_incomplete);
EXPECT_EQ(76, values[0]);
EXPECT_EQ(0, values[1]);
EXPECT_EQ(1, value_count);
value_count = 2;
VkResult result_complete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_INT64_EXT, &value_count, &values[0]);
VkResult result_complete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_INT64_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_SUCCESS, result_complete);
EXPECT_EQ(76, values[0]);
EXPECT_EQ(-82, values[1]);
EXPECT_EQ(2, value_count);
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlGetLayerSettingValues_Uint32) {
@ -281,34 +289,36 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Uint32) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
uint32_t value_count = 0;
VkResult result_count = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_UINT32_EXT, &value_count, nullptr);
VkResult result_count =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_UINT32_EXT, &value_count, nullptr);
EXPECT_EQ(VK_SUCCESS, result_count);
EXPECT_EQ(2, value_count);
std::vector<std::uint32_t> values(static_cast<uint32_t>(value_count));
value_count = 1;
VkResult result_incomplete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_UINT32_EXT, &value_count, &values[0]);
VkResult result_incomplete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_UINT32_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_INCOMPLETE, result_incomplete);
EXPECT_EQ(76, values[0]);
EXPECT_EQ(0, values[1]);
EXPECT_EQ(1, value_count);
value_count = 2;
VkResult result_complete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_UINT32_EXT, &value_count, &values[0]);
VkResult result_complete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_UINT32_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_SUCCESS, result_complete);
EXPECT_EQ(76, values[0]);
EXPECT_EQ(82, values[1]);
EXPECT_EQ(2, value_count);
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlGetLayerSettingValues_Uint64) {
@ -321,34 +331,36 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Uint64) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
uint32_t value_count = 0;
VkResult result_count = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_UINT64_EXT, &value_count, nullptr);
VkResult result_count =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_UINT64_EXT, &value_count, nullptr);
EXPECT_EQ(VK_SUCCESS, result_count);
EXPECT_EQ(2, value_count);
std::vector<std::uint64_t> values(static_cast<uint32_t>(value_count));
value_count = 1;
VkResult result_incomplete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_UINT32_EXT, &value_count, &values[0]);
VkResult result_incomplete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_UINT32_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_INCOMPLETE, result_incomplete);
EXPECT_EQ(76, values[0]);
EXPECT_EQ(0, values[1]);
EXPECT_EQ(1, value_count);
value_count = 2;
VkResult result_complete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_UINT64_EXT, &value_count, &values[0]);
VkResult result_complete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_UINT64_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_SUCCESS, result_complete);
EXPECT_EQ(76, values[0]);
EXPECT_EQ(82, values[1]);
EXPECT_EQ(2, value_count);
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlGetLayerSettingValues_Float) {
@ -361,33 +373,35 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Float) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
uint32_t value_count = 0;
VkResult result_count = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_FLOAT_EXT, &value_count, nullptr);
VkResult result_count =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_FLOAT_EXT, &value_count, nullptr);
EXPECT_EQ(VK_SUCCESS, result_count);
EXPECT_EQ(2, value_count);
std::vector<float> values(static_cast<uint32_t>(value_count));
value_count = 1;
VkResult result_incomplete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_FLOAT_EXT, &value_count, &values[0]);
VkResult result_incomplete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_FLOAT_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_INCOMPLETE, result_incomplete);
EXPECT_TRUE(std::abs(values[0] - 76.1f) <= 0.0001f);
EXPECT_EQ(1, value_count);
value_count = 2;
VkResult result_complete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_FLOAT_EXT, &value_count, &values[0]);
VkResult result_complete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_FLOAT_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_SUCCESS, result_complete);
EXPECT_TRUE(std::abs(values[0] - 76.1f) <= 0.0001f);
EXPECT_TRUE(std::abs(values[1] - -82.5f) <= 0.0001f);
EXPECT_EQ(2, value_count);
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlGetLayerSettingValues_Double) {
@ -400,33 +414,35 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Double) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
uint32_t value_count = 0;
VkResult result_count = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_DOUBLE_EXT, &value_count, nullptr);
VkResult result_count =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_DOUBLE_EXT, &value_count, nullptr);
EXPECT_EQ(VK_SUCCESS, result_count);
EXPECT_EQ(2, value_count);
std::vector<double> values(static_cast<uint32_t>(value_count));
value_count = 1;
VkResult result_incomplete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_DOUBLE_EXT, &value_count, &values[0]);
VkResult result_incomplete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_DOUBLE_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_INCOMPLETE, result_incomplete);
EXPECT_TRUE(std::abs(values[0] - 76.1) <= 0.0001);
EXPECT_EQ(1, value_count);
value_count = 2;
VkResult result_complete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_DOUBLE_EXT, &value_count, &values[0]);
VkResult result_complete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_DOUBLE_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_SUCCESS, result_complete);
EXPECT_TRUE(std::abs(values[0] - 76.1) <= 0.0001);
EXPECT_TRUE(std::abs(values[1] - -82.5) <= 0.0001);
EXPECT_EQ(2, value_count);
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlGetLayerSettingValues_Frameset) {
@ -441,23 +457,22 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Frameset) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
uint32_t value_count = 0;
VkResult result_count = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_FRAMESET_EXT, &value_count, nullptr);
VkResult result_count =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_FRAMESET_EXT, &value_count, nullptr);
EXPECT_EQ(VK_SUCCESS, result_count);
EXPECT_EQ(2, value_count);
std::vector<VkFrameset> values(static_cast<uint32_t>(value_count));
value_count = 1;
VkResult result_incomplete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_FRAMESET_EXT, &value_count, &values[0]);
VkResult result_incomplete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_FRAMESET_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_INCOMPLETE, result_incomplete);
EXPECT_EQ(76, values[0].first);
EXPECT_EQ(100, values[0].count);
@ -465,7 +480,8 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Frameset) {
EXPECT_EQ(1, value_count);
value_count = 2;
VkResult result_complete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_FRAMESET_EXT, &value_count, &values[0]);
VkResult result_complete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_FRAMESET_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_SUCCESS, result_complete);
EXPECT_EQ(76, values[0].first);
EXPECT_EQ(100, values[0].count);
@ -474,6 +490,8 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_Frameset) {
EXPECT_EQ(100, values[1].count);
EXPECT_EQ(1, values[1].step);
EXPECT_EQ(2, value_count);
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}
TEST(test_layer_setting_api, vlGetLayerSettingValues_String) {
@ -485,32 +503,34 @@ TEST(test_layer_setting_api, vlGetLayerSettingValues_String) {
VkLayerSettingsCreateInfoEXT layer_settings_create_info{
VK_STRUCTURE_TYPE_LAYER_SETTINGS_EXT, nullptr, static_cast<uint32_t>(settings.size()), &settings[0]};
VkInstanceCreateInfo instance_create_info{};
instance_create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_create_info.pNext = &layer_settings_create_info;
VlLayerSettingSet layerSettingSet = VK_NULL_HANDLE;
vlCreateLayerSettingSet("VK_LAYER_LUNARG_test", &layer_settings_create_info, nullptr, nullptr, &layerSettingSet);
vlInitLayerSettings("VK_LAYER_LUNARG_test", &instance_create_info, nullptr);
EXPECT_TRUE(vlHasLayerSetting("my_setting"));
EXPECT_TRUE(vlHasLayerSetting(layerSettingSet, "my_setting"));
uint32_t value_count = 0;
VkResult result_count = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_STRING_EXT, &value_count, nullptr);
VkResult result_count =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_STRING_EXT, &value_count, nullptr);
EXPECT_EQ(VK_SUCCESS, result_count);
EXPECT_EQ(2, value_count);
std::vector<const char*> values(static_cast<uint32_t>(value_count));
value_count = 1;
VkResult result_incomplete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_STRING_EXT, &value_count, &values[0]);
VkResult result_incomplete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_STRING_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_INCOMPLETE, result_incomplete);
EXPECT_STREQ("VALUE_A", values[0]);
EXPECT_STREQ(nullptr, values[1]);
EXPECT_EQ(1, value_count);
value_count = 2;
VkResult result_complete = vlGetLayerSettingValues("my_setting", VK_LAYER_SETTING_TYPE_STRING_EXT, &value_count, &values[0]);
VkResult result_complete =
vlGetLayerSettingValues(layerSettingSet, "my_setting", VK_LAYER_SETTING_TYPE_STRING_EXT, &value_count, &values[0]);
EXPECT_EQ(VK_SUCCESS, result_complete);
EXPECT_STREQ("VALUE_A", values[0]);
EXPECT_STREQ("VALUE_B", values[1]);
EXPECT_EQ(2, value_count);
vlDestroyLayerSettingSet(layerSettingSet, nullptr);
}