Skip to content

Commit

Permalink
vkconfig: Fix disabled mode display on start
Browse files Browse the repository at this point in the history
Change-Id: I2e7f43128691917eeb55b820385a7d91f7bce6a5
  • Loading branch information
christophe-lunarg committed Apr 26, 2024
1 parent b824aa6 commit 1ea8d16
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 23 deletions.
8 changes: 3 additions & 5 deletions vkconfig/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,10 +143,7 @@ MainWindow::MainWindow(QWidget *parent)
ui->log_browser->document()->setMaximumBlockCount(2048);
ui->configuration_tree->scrollToItem(ui->configuration_tree->topLevelItem(0), QAbstractItemView::PositionAtTop);

const std::string configuration_name = environment.Get(ACTIVE_CONFIGURATION);
if (!configuration_name.empty()) {
configurator.configurations.SetActiveConfiguration(configurator.layers.available_layers, configuration_name);
}
configurator.configurations.RefreshConfiguration(configurator.layers.available_layers);

this->InitTray();
this->UpdateTray();
Expand Down Expand Up @@ -508,7 +505,8 @@ void MainWindow::OnComboBoxModeChanged(int index) {
configurator.environment.SetMode(static_cast<LayersMode>(ui->combo_box_layers_controlled->currentIndex()));
configurator.configurations.RefreshConfiguration(configurator.layers.available_layers);

UpdateUI();
this->UpdateUI();
this->UpdateStatus();
}

// We want to apply to just the app list... hang on there. Doe we have the new loader?
Expand Down
32 changes: 19 additions & 13 deletions vkconfig/vulkan_util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -150,14 +150,22 @@ VkResult CreateInstance(QLibrary &library, VkInstance &instance, bool enumerate_
std::string GenerateVulkanStatus() {
std::string log;

const Configurator &configurator = Configurator::Get();
Configurator &configurator = Configurator::Get();

// Layers override configuration
if (configurator.configurations.HasActiveConfiguration(configurator.layers.available_layers)) {
log +=
format("- Layers override: \"%s\" configuration\n", configurator.configurations.GetActiveConfiguration()->key.c_str());
} else {
log += "- Layers override: None\n";
switch (configurator.environment.GetMode()) {
default:
case LAYERS_MODE_BY_APPLICATIONS:
log += "- Vulkan Layers Controlled by Vulkan Applications\n";
break;
case LAYERS_MODE_BY_CONFIGURATOR_RUNNING:
if (configurator.configurations.HasActiveConfiguration(configurator.layers.available_layers))
log += format("- Vulkan Layers Controlled by Vulkan Configurator using \"%s\" configuration\n",
configurator.environment.Get(ACTIVE_CONFIGURATION).c_str());
break;
case LAYERS_MODE_BY_CONFIGURATOR_ALL_DISABLED:
log += "- Vulkan Layers Disabled by Vulkan Configurator\n";
break;
}

// Check Vulkan SDK path
Expand Down Expand Up @@ -212,10 +220,9 @@ std::string GenerateVulkanStatus() {
return log;
}

Configuration *active_configuration = configurator.configurations.GetActiveConfiguration();
if (configurator.configurations.HasActiveConfiguration(configurator.layers.available_layers)) {
SurrenderConfiguration(configurator.environment);
}
LayersMode saved_mode = configurator.environment.GetMode();
configurator.environment.SetMode(LAYERS_MODE_BY_APPLICATIONS);
configurator.configurations.RefreshConfiguration(configurator.layers.available_layers);

QLibrary library(GetVulkanLibrary());
PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties =
Expand Down Expand Up @@ -353,9 +360,8 @@ std::string GenerateVulkanStatus() {

vkDestroyInstance(inst, NULL);

if (active_configuration != nullptr) {
OverrideConfiguration(configurator.environment, configurator.layers.available_layers, *active_configuration);
}
configurator.environment.SetMode(saved_mode);
configurator.configurations.RefreshConfiguration(configurator.layers.available_layers);

return log;
}
21 changes: 16 additions & 5 deletions vkconfig_core/configuration_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -277,11 +277,22 @@ void ConfigurationManager::RefreshConfiguration(const std::vector<Layer> &availa
}

bool ConfigurationManager::HasActiveConfiguration(const std::vector<Layer> &available_layers) const {
std::string missing_layer;
if (this->active_configuration != nullptr)
return !HasMissingLayer(this->active_configuration->parameters, available_layers, missing_layer);
else
return false;
switch (environment.GetMode()) {
case LAYERS_MODE_BY_APPLICATIONS:
return false;
case LAYERS_MODE_BY_CONFIGURATOR_RUNNING: {
if (this->active_configuration != nullptr) {
std::string missing_layer;
return !HasMissingLayer(this->active_configuration->parameters, available_layers, missing_layer);
} else {
return false;
}
}
case LAYERS_MODE_BY_CONFIGURATOR_ALL_DISABLED:
return true;
}

return false;
}

void ConfigurationManager::ImportConfiguration(const std::vector<Layer> &available_layers, const std::string &full_import_path) {
Expand Down

0 comments on commit 1ea8d16

Please sign in to comment.