diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index 11ef3855..5bf47120 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -461,7 +461,7 @@ namespace dxvk { m_deviceFeatures.extShaderModuleIdentifier.shaderModuleIdentifier; // Create pNext chain for additional device features - initFeatureChain(enabledFeatures, devExtensions); + initFeatureChain(enabledFeatures, devExtensions, instance->extensions()); // Log feature support info an extension list Logger::info(str::format("Device properties:" @@ -633,7 +633,7 @@ namespace dxvk { } } - initFeatureChain(enabledFeatures, devExtensions); + initFeatureChain(enabledFeatures, devExtensions, instance->extensions()); // Log feature support info an extension list Logger::info(str::format("Device properties:" @@ -980,7 +980,8 @@ namespace dxvk { void DxvkAdapter::initFeatureChain( DxvkDeviceFeatures& enabledFeatures, - const DxvkDeviceExtensions& devExtensions) { + const DxvkDeviceExtensions& devExtensions, + const DxvkInstanceExtensions& insExtensions) { enabledFeatures.core.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR; enabledFeatures.core.pNext = nullptr; @@ -1024,7 +1025,7 @@ namespace dxvk { enabledFeatures.extFragmentShaderInterlock.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extFragmentShaderInterlock); } - if (devExtensions.extFullScreenExclusive) + if (devExtensions.extFullScreenExclusive && insExtensions.khrGetSurfaceCapabilities2) enabledFeatures.extFullScreenExclusive = VK_TRUE; if (devExtensions.extGraphicsPipelineLibrary) { diff --git a/src/dxvk/dxvk_adapter.h b/src/dxvk/dxvk_adapter.h index 837e1d90..48b54e16 100644 --- a/src/dxvk/dxvk_adapter.h +++ b/src/dxvk/dxvk_adapter.h @@ -306,7 +306,8 @@ namespace dxvk { static void initFeatureChain( DxvkDeviceFeatures& enabledFeatures, - const DxvkDeviceExtensions& devExtensions); + const DxvkDeviceExtensions& devExtensions, + const DxvkInstanceExtensions& insExtensions); static void logNameList(const DxvkNameList& names); static void logFeatures(const DxvkDeviceFeatures& features);