diff --git a/src/dxvk/dxvk_extensions.cpp b/src/dxvk/dxvk_extensions.cpp index 5171019b..7a719ac3 100644 --- a/src/dxvk/dxvk_extensions.cpp +++ b/src/dxvk/dxvk_extensions.cpp @@ -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; } } diff --git a/src/dxvk/dxvk_extensions.h b/src/dxvk/dxvk_extensions.h index a3825424..9d143c47 100644 --- a/src/dxvk/dxvk_extensions.h +++ b/src/dxvk/dxvk_extensions.h @@ -17,6 +17,7 @@ namespace dxvk { Disabled, Optional, Required, + Passive, };