Vulkan: Enable pageable device-local memory

This commit is contained in:
sunshineinabox
2026-02-28 15:50:47 -06:00
committed by KeatonTheBot
parent e96823c9a0
commit 491fb3ccfb
@@ -29,6 +29,7 @@ namespace Ryujinx.Graphics.Vulkan
KhrDrawIndirectCount.ExtensionName,
KhrPushDescriptor.ExtensionName,
ExtExternalMemoryHost.ExtensionName,
ExtPageableDeviceLocalMemory.ExtensionName,
"VK_EXT_blend_operation_advanced",
"VK_EXT_custom_border_color",
"VK_EXT_descriptor_indexing", // Enabling this works around an issue with disposed buffer bindings on RADV.
@@ -461,6 +462,14 @@ namespace Ryujinx.Graphics.Vulkan
features2.PNext = &supportedFeaturesShaderInt8;
}
PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT supportedPageableDeviceLocalMemoryFeatures = new()
{
SType = StructureType.PhysicalDevicePageableDeviceLocalMemoryFeaturesExt,
PNext = features2.PNext,
};
features2.PNext = &supportedPageableDeviceLocalMemoryFeatures;
PhysicalDeviceVulkan12Features supportedPhysicalDeviceVulkan12Features = new()
{
SType = StructureType.PhysicalDeviceVulkan12Features,
@@ -633,6 +642,15 @@ namespace Ryujinx.Graphics.Vulkan
pExtendedFeatures = &featuresDynamicAttachmentFeedbackLoop;
}
PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT featuresPageableDeviceLocalMemory = new()
{
SType = StructureType.PhysicalDevicePageableDeviceLocalMemoryFeaturesExt,
PNext = pExtendedFeatures,
PageableDeviceLocalMemory = supportedPageableDeviceLocalMemoryFeatures.PageableDeviceLocalMemory,
};
pExtendedFeatures = &featuresPageableDeviceLocalMemory;
var enabledExtensions = _requiredExtensions.Union(_desirableExtensions.Intersect(physicalDevice.DeviceExtensions));
if (VendorUtils.FromId(physicalDevice.PhysicalDeviceProperties.VendorID) == Vendor.Qualcomm &&