diff --git a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate index 6c8f40189..80ae06ef0 100644 Binary files a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate and b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/stossy11.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/src/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs b/src/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs index 155525ecd..95fc72492 100644 --- a/src/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs +++ b/src/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs @@ -580,12 +580,14 @@ namespace Ryujinx.Graphics.Vulkan { texture.Sampler = _dummySampler.GetSampler().Get(cbs).Value; } - - Span singleTexture = textures.Slice(i, 1); - dsc.UpdateImages(0, binding + i, singleTexture, DescriptorType.CombinedImageSampler); + if (OperatingSystem.IsIOS()) { + Span singleTexture = textures.Slice(i, 1); + dsc.UpdateImages(0, binding + i, singleTexture, DescriptorType.CombinedImageSampler); + } + } + if (!OperatingSystem.IsIOS()) { + dsc.UpdateImages(0, binding, textures[..count], DescriptorType.CombinedImageSampler); } - - // dsc.UpdateImages(0, binding, textures[..count], DescriptorType.CombinedImageSampler); } else { @@ -608,11 +610,15 @@ namespace Ryujinx.Graphics.Vulkan for (int i = 0; i < count; i++) { images[i].ImageView = _imageRefs[binding + i]?.Get(cbs).Value ?? default; - Span singleImage = images.Slice(i, 1); - dsc.UpdateImages(0, binding + i, singleImage, DescriptorType.StorageImage); + if (OperatingSystem.IsIOS()) { + Span singleImage = images.Slice(i, 1); + dsc.UpdateImages(0, binding + i, singleImage, DescriptorType.StorageImage); + } } - // dsc.UpdateImages(0, binding, images[..count], DescriptorType.StorageImage); + if (!OperatingSystem.IsIOS()) { + dsc.UpdateImages(0, binding, images[..count], DescriptorType.StorageImage); + } } else { diff --git a/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs b/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs index f89ca788f..c421a662a 100644 --- a/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs +++ b/src/Ryujinx.Graphics.Vulkan/HardwareCapabilities.cs @@ -103,10 +103,14 @@ namespace Ryujinx.Graphics.Vulkan SupportsShaderStencilExport = supportsShaderStencilExport; SupportsShaderStorageImageMultisample = supportsShaderStorageImageMultisample; SupportsConditionalRendering = supportsConditionalRendering; - SupportsExtendedDynamicState = supportsExtendedDynamicState; + if (OperatingSystem.IsIOS()) { + SupportsExtendedDynamicState = (OperatingSystem.IsOSPlatformVersionAtLeast("iOS", 17) ? supportsExtendedDynamicState : false); + } else { + SupportsExtendedDynamicState = supportsExtendedDynamicState; + } SupportsMultiView = supportsMultiView; SupportsNullDescriptors = (OperatingSystem.IsIOS() ? false : supportsNullDescriptors); - SupportsPushDescriptors = (OperatingSystem.IsIOS() ? false : supportsPushDescriptors); + SupportsPushDescriptors = supportsPushDescriptors; SupportsPrimitiveTopologyListRestart = supportsPrimitiveTopologyListRestart; SupportsPrimitiveTopologyPatchListRestart = supportsPrimitiveTopologyPatchListRestart; SupportsTransformFeedback = supportsTransformFeedback;