[dxvk] Add support for passive device extensions

These extensions only affect physical device functionality and
do not have to be enabled during device creation.
This commit is contained in:
Philip Rebohle 2019-07-03 10:59:48 +02:00
parent cb806a5d56
commit f21c02caef
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 13 additions and 9 deletions

View File

@ -38,17 +38,20 @@ namespace dxvk {
for (uint32_t i = 0; i < numExtensions; i++) {
DxvkExt* ext = ppExtensions[i];
if (ext->mode() != DxvkExtMode::Disabled) {
uint32_t revision = supports(ext->name());
if (ext->mode() == DxvkExtMode::Disabled)
continue;
uint32_t revision = supports(ext->name());
if (revision != 0) {
if (revision) {
if (ext->mode() != DxvkExtMode::Passive)
nameSet.add(ext->name());
ext->enable(revision);
} else if (ext->mode() == DxvkExtMode::Required) {
Logger::info(str::format(
"Required Vulkan extension ", ext->name(), " not supported"));
allRequiredEnabled = false;
}
ext->enable(revision);
} else if (ext->mode() == DxvkExtMode::Required) {
Logger::info(str::format("Required Vulkan extension ", ext->name(), " not supported"));
allRequiredEnabled = false;
continue;
}
}

View File

@ -17,6 +17,7 @@ namespace dxvk {
Disabled,
Optional,
Required,
Passive,
};