Skip to content

Commit 1ea8d16

Browse files
vkconfig: Fix disabled mode display on start
Change-Id: I2e7f43128691917eeb55b820385a7d91f7bce6a5
1 parent b824aa6 commit 1ea8d16

File tree

3 files changed

+38
-23
lines changed

3 files changed

+38
-23
lines changed

vkconfig/mainwindow.cpp

+3-5
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,7 @@ MainWindow::MainWindow(QWidget *parent)
143143
ui->log_browser->document()->setMaximumBlockCount(2048);
144144
ui->configuration_tree->scrollToItem(ui->configuration_tree->topLevelItem(0), QAbstractItemView::PositionAtTop);
145145

146-
const std::string configuration_name = environment.Get(ACTIVE_CONFIGURATION);
147-
if (!configuration_name.empty()) {
148-
configurator.configurations.SetActiveConfiguration(configurator.layers.available_layers, configuration_name);
149-
}
146+
configurator.configurations.RefreshConfiguration(configurator.layers.available_layers);
150147

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

511-
UpdateUI();
508+
this->UpdateUI();
509+
this->UpdateStatus();
512510
}
513511

514512
// We want to apply to just the app list... hang on there. Doe we have the new loader?

vkconfig/vulkan_util.cpp

+19-13
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,22 @@ VkResult CreateInstance(QLibrary &library, VkInstance &instance, bool enumerate_
150150
std::string GenerateVulkanStatus() {
151151
std::string log;
152152

153-
const Configurator &configurator = Configurator::Get();
153+
Configurator &configurator = Configurator::Get();
154154

155155
// Layers override configuration
156-
if (configurator.configurations.HasActiveConfiguration(configurator.layers.available_layers)) {
157-
log +=
158-
format("- Layers override: \"%s\" configuration\n", configurator.configurations.GetActiveConfiguration()->key.c_str());
159-
} else {
160-
log += "- Layers override: None\n";
156+
switch (configurator.environment.GetMode()) {
157+
default:
158+
case LAYERS_MODE_BY_APPLICATIONS:
159+
log += "- Vulkan Layers Controlled by Vulkan Applications\n";
160+
break;
161+
case LAYERS_MODE_BY_CONFIGURATOR_RUNNING:
162+
if (configurator.configurations.HasActiveConfiguration(configurator.layers.available_layers))
163+
log += format("- Vulkan Layers Controlled by Vulkan Configurator using \"%s\" configuration\n",
164+
configurator.environment.Get(ACTIVE_CONFIGURATION).c_str());
165+
break;
166+
case LAYERS_MODE_BY_CONFIGURATOR_ALL_DISABLED:
167+
log += "- Vulkan Layers Disabled by Vulkan Configurator\n";
168+
break;
161169
}
162170

163171
// Check Vulkan SDK path
@@ -212,10 +220,9 @@ std::string GenerateVulkanStatus() {
212220
return log;
213221
}
214222

215-
Configuration *active_configuration = configurator.configurations.GetActiveConfiguration();
216-
if (configurator.configurations.HasActiveConfiguration(configurator.layers.available_layers)) {
217-
SurrenderConfiguration(configurator.environment);
218-
}
223+
LayersMode saved_mode = configurator.environment.GetMode();
224+
configurator.environment.SetMode(LAYERS_MODE_BY_APPLICATIONS);
225+
configurator.configurations.RefreshConfiguration(configurator.layers.available_layers);
219226

220227
QLibrary library(GetVulkanLibrary());
221228
PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties =
@@ -353,9 +360,8 @@ std::string GenerateVulkanStatus() {
353360

354361
vkDestroyInstance(inst, NULL);
355362

356-
if (active_configuration != nullptr) {
357-
OverrideConfiguration(configurator.environment, configurator.layers.available_layers, *active_configuration);
358-
}
363+
configurator.environment.SetMode(saved_mode);
364+
configurator.configurations.RefreshConfiguration(configurator.layers.available_layers);
359365

360366
return log;
361367
}

vkconfig_core/configuration_manager.cpp

+16-5
Original file line numberDiff line numberDiff line change
@@ -277,11 +277,22 @@ void ConfigurationManager::RefreshConfiguration(const std::vector<Layer> &availa
277277
}
278278

279279
bool ConfigurationManager::HasActiveConfiguration(const std::vector<Layer> &available_layers) const {
280-
std::string missing_layer;
281-
if (this->active_configuration != nullptr)
282-
return !HasMissingLayer(this->active_configuration->parameters, available_layers, missing_layer);
283-
else
284-
return false;
280+
switch (environment.GetMode()) {
281+
case LAYERS_MODE_BY_APPLICATIONS:
282+
return false;
283+
case LAYERS_MODE_BY_CONFIGURATOR_RUNNING: {
284+
if (this->active_configuration != nullptr) {
285+
std::string missing_layer;
286+
return !HasMissingLayer(this->active_configuration->parameters, available_layers, missing_layer);
287+
} else {
288+
return false;
289+
}
290+
}
291+
case LAYERS_MODE_BY_CONFIGURATOR_ALL_DISABLED:
292+
return true;
293+
}
294+
295+
return false;
285296
}
286297

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

0 commit comments

Comments
 (0)