aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
diff options
context:
space:
mode:
authorGeorg Lehmann <49841484+DadSchoorse@users.noreply.github.com>2022-12-15 00:53:33 +0100
committerGitHub <noreply@github.com>2022-12-14 20:53:33 -0300
commit0f50de72beb52585ee032a72990bb505885eab19 (patch)
treec0831fccbea758303c1d623a3ef849e107301524 /Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
parentdf758eddd1d61f776415422dc4dd1fa8a776719c (diff)
Vulkan: enable VK_EXT_custom_border_color features (#4116)1.1.469
* Vulkan: enable VK_EXT_custom_border_color features radv only create the border color bo if this feature is enabled, so it crashed when creating samplers with custom border colors Fixes #4072 Fixes #3993 * Address gdkchan's comment Co-authored-by: Mary <mary@mary.zone>
Diffstat (limited to 'Ryujinx.Graphics.Vulkan/VulkanRenderer.cs')
-rw-r--r--Ryujinx.Graphics.Vulkan/VulkanRenderer.cs17
1 files changed, 16 insertions, 1 deletions
diff --git a/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs b/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
index e9472067..fa9d4cb0 100644
--- a/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
+++ b/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs
@@ -177,6 +177,11 @@ namespace Ryujinx.Graphics.Vulkan
SType = StructureType.PhysicalDeviceShaderFloat16Int8Features
};
+ PhysicalDeviceCustomBorderColorFeaturesEXT featuresCustomBorderColor = new PhysicalDeviceCustomBorderColorFeaturesEXT()
+ {
+ SType = StructureType.PhysicalDeviceCustomBorderColorFeaturesExt
+ };
+
if (supportedExtensions.Contains("VK_EXT_robustness2"))
{
features2.PNext = &featuresRobustness2;
@@ -188,8 +193,18 @@ namespace Ryujinx.Graphics.Vulkan
features2.PNext = &featuresShaderInt8;
}
+ if (supportedExtensions.Contains("VK_EXT_custom_border_color"))
+ {
+ featuresCustomBorderColor.PNext = features2.PNext;
+ features2.PNext = &featuresCustomBorderColor;
+ }
+
Api.GetPhysicalDeviceFeatures2(_physicalDevice, &features2);
+ bool customBorderColorSupported = supportedExtensions.Contains("VK_EXT_custom_border_color") &&
+ featuresCustomBorderColor.CustomBorderColors &&
+ featuresCustomBorderColor.CustomBorderColorWithoutFormat;
+
ref var properties = ref properties2.Properties;
SampleCountFlags supportedSampleCounts =
@@ -199,7 +214,7 @@ namespace Ryujinx.Graphics.Vulkan
Capabilities = new HardwareCapabilities(
supportedExtensions.Contains("VK_EXT_index_type_uint8"),
- supportedExtensions.Contains("VK_EXT_custom_border_color"),
+ customBorderColorSupported,
supportedExtensions.Contains(KhrDrawIndirectCount.ExtensionName),
supportedExtensions.Contains("VK_EXT_fragment_shader_interlock"),
supportedExtensions.Contains("VK_NV_geometry_shader_passthrough"),