|
@@ -216,6 +216,11 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
SType = StructureType.PhysicalDeviceCustomBorderColorFeaturesExt
|
|
SType = StructureType.PhysicalDeviceCustomBorderColorFeaturesExt
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ PhysicalDeviceDepthClipControlFeaturesEXT featuresDepthClipControl = new PhysicalDeviceDepthClipControlFeaturesEXT()
|
|
|
|
|
+ {
|
|
|
|
|
+ SType = StructureType.PhysicalDeviceDepthClipControlFeaturesExt
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
PhysicalDevicePortabilitySubsetFeaturesKHR featuresPortabilitySubset = new PhysicalDevicePortabilitySubsetFeaturesKHR()
|
|
PhysicalDevicePortabilitySubsetFeaturesKHR featuresPortabilitySubset = new PhysicalDevicePortabilitySubsetFeaturesKHR()
|
|
|
{
|
|
{
|
|
|
SType = StructureType.PhysicalDevicePortabilitySubsetFeaturesKhr
|
|
SType = StructureType.PhysicalDevicePortabilitySubsetFeaturesKhr
|
|
@@ -244,6 +249,14 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
features2.PNext = &featuresCustomBorderColor;
|
|
features2.PNext = &featuresCustomBorderColor;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ bool supportsDepthClipControl = _physicalDevice.IsDeviceExtensionPresent("VK_EXT_depth_clip_control");
|
|
|
|
|
+
|
|
|
|
|
+ if (supportsDepthClipControl)
|
|
|
|
|
+ {
|
|
|
|
|
+ featuresDepthClipControl.PNext = features2.PNext;
|
|
|
|
|
+ features2.PNext = &featuresDepthClipControl;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
bool usePortability = _physicalDevice.IsDeviceExtensionPresent("VK_KHR_portability_subset");
|
|
bool usePortability = _physicalDevice.IsDeviceExtensionPresent("VK_KHR_portability_subset");
|
|
|
|
|
|
|
|
if (usePortability)
|
|
if (usePortability)
|
|
@@ -310,6 +323,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
_physicalDevice.PhysicalDeviceFeatures.GeometryShader,
|
|
_physicalDevice.PhysicalDeviceFeatures.GeometryShader,
|
|
|
_physicalDevice.IsDeviceExtensionPresent("VK_NV_viewport_array2"),
|
|
_physicalDevice.IsDeviceExtensionPresent("VK_NV_viewport_array2"),
|
|
|
_physicalDevice.IsDeviceExtensionPresent(ExtExternalMemoryHost.ExtensionName),
|
|
_physicalDevice.IsDeviceExtensionPresent(ExtExternalMemoryHost.ExtensionName),
|
|
|
|
|
+ supportsDepthClipControl && featuresDepthClipControl.DepthClipControl,
|
|
|
propertiesSubgroupSizeControl.MinSubgroupSize,
|
|
propertiesSubgroupSizeControl.MinSubgroupSize,
|
|
|
propertiesSubgroupSizeControl.MaxSubgroupSize,
|
|
propertiesSubgroupSizeControl.MaxSubgroupSize,
|
|
|
propertiesSubgroupSizeControl.RequiredSubgroupSizeStages,
|
|
propertiesSubgroupSizeControl.RequiredSubgroupSizeStages,
|
|
@@ -585,6 +599,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
supportsViewportMask: Capabilities.SupportsViewportArray2,
|
|
supportsViewportMask: Capabilities.SupportsViewportArray2,
|
|
|
supportsViewportSwizzle: false,
|
|
supportsViewportSwizzle: false,
|
|
|
supportsIndirectParameters: true,
|
|
supportsIndirectParameters: true,
|
|
|
|
|
+ supportsDepthClipControl: Capabilities.SupportsDepthClipControl,
|
|
|
maximumUniformBuffersPerStage: Constants.MaxUniformBuffersPerStage,
|
|
maximumUniformBuffersPerStage: Constants.MaxUniformBuffersPerStage,
|
|
|
maximumStorageBuffersPerStage: Constants.MaxStorageBuffersPerStage,
|
|
maximumStorageBuffersPerStage: Constants.MaxStorageBuffersPerStage,
|
|
|
maximumTexturesPerStage: Constants.MaxTexturesPerStage,
|
|
maximumTexturesPerStage: Constants.MaxTexturesPerStage,
|