From 3abe9a0285f4fb1e507402c9c2508d97a23bdc8b Mon Sep 17 00:00:00 2001 From: KeatonTheBot Date: Sat, 5 Sep 2026 00:11:57 -0500 Subject: [PATCH] Add icd.d JSON files for local, non-bundled builds --- .../macos/vulkan/icd.d/MoltenVK_icd-flat.json | 8 ++++++++ .../vulkan/icd.d/libkosmickrisp_icd-flat.json | 7 +++++++ src/Ryujinx.Graphics.Vulkan/VulkanDriver.cs | 14 ++++++++++++-- src/Ryujinx/Ryujinx.csproj | 12 ++++++++++++ 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 distribution/macos/vulkan/icd.d/MoltenVK_icd-flat.json create mode 100644 distribution/macos/vulkan/icd.d/libkosmickrisp_icd-flat.json diff --git a/distribution/macos/vulkan/icd.d/MoltenVK_icd-flat.json b/distribution/macos/vulkan/icd.d/MoltenVK_icd-flat.json new file mode 100644 index 000000000..2b26d3a25 --- /dev/null +++ b/distribution/macos/vulkan/icd.d/MoltenVK_icd-flat.json @@ -0,0 +1,8 @@ +{ + "file_format_version" : "1.0.0", + "ICD": { + "library_path": "../../libMoltenVK.dylib", + "api_version" : "1.4.0", + "is_portability_driver" : true + } +} diff --git a/distribution/macos/vulkan/icd.d/libkosmickrisp_icd-flat.json b/distribution/macos/vulkan/icd.d/libkosmickrisp_icd-flat.json new file mode 100644 index 000000000..3f82fcc9d --- /dev/null +++ b/distribution/macos/vulkan/icd.d/libkosmickrisp_icd-flat.json @@ -0,0 +1,7 @@ +{ + "ICD": { + "api_version": "1.3.0", + "library_path": "../../libvulkan_kosmickrisp.dylib" + }, + "file_format_version": "1.0.1" +} \ No newline at end of file diff --git a/src/Ryujinx.Graphics.Vulkan/VulkanDriver.cs b/src/Ryujinx.Graphics.Vulkan/VulkanDriver.cs index a13e65af2..37f5fef3e 100644 --- a/src/Ryujinx.Graphics.Vulkan/VulkanDriver.cs +++ b/src/Ryujinx.Graphics.Vulkan/VulkanDriver.cs @@ -10,9 +10,19 @@ namespace Ryujinx.Graphics.Vulkan private static string GetIcdPath(string fileName) { string contentsDir = Path.GetDirectoryName(AppContext.BaseDirectory.TrimEnd('/'))!; - string icdPath = Path.Combine(contentsDir, "Resources", "vulkan", "icd.d", fileName); + string[] searchPaths = + [ + Path.Combine(contentsDir, "Resources", "vulkan", "icd.d", fileName), + Path.Combine(contentsDir, "vulkan", "icd.d", fileName) + ]; - return !File.Exists(icdPath) ? throw new FileNotFoundException($"{fileName} not found", icdPath) : icdPath; + foreach (string icdPath in searchPaths) + { + if (File.Exists(icdPath)) + return icdPath; + } + + throw new FileNotFoundException($"{fileName} not found"); } public static void MoltenVK() diff --git a/src/Ryujinx/Ryujinx.csproj b/src/Ryujinx/Ryujinx.csproj index 409248ee7..712f69fd4 100644 --- a/src/Ryujinx/Ryujinx.csproj +++ b/src/Ryujinx/Ryujinx.csproj @@ -91,6 +91,18 @@ + + + + + + + + Always