diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 9843487a3..f2bebc77f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -71,7 +71,7 @@ jobs:
- uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
-
+
- name: Overwrite csc problem matcher
run: echo "::add-matcher::.github/csc.json"
@@ -104,37 +104,30 @@ jobs:
if: matrix.platform.os == 'windows-latest'
run: |
pushd publish_ava
+ cp publish/Ryujinx.exe publish/Ryujinx.Ava.exe
7z a ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
+ 7z a ../release_output/test-ava-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
popd
pushd publish_sdl2_headless
7z a ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
popd
-
- pushd publish_ava
- mv publish/Ryujinx.exe publish/Ryujinx.Ava.exe
- 7z a ../release_output/test-ava-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
- popd
shell: bash
- name: Packing Linux builds
if: matrix.platform.os == 'ubuntu-latest'
run: |
pushd publish_ava
- chmod +x publish/Ryujinx.sh publish/Ryujinx
+ cp publish/Ryujinx publish/Ryujinx.Ava
+ chmod +x publish/Ryujinx.sh publish/Ryujinx.Ava publish/Ryujinx
tar -czvf ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
+ tar -czvf ../release_output/test-ava-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
popd
pushd publish_sdl2_headless
chmod +x publish/Ryujinx.sh publish/Ryujinx.Headless.SDL2
tar -czvf ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
popd
-
- pushd publish_ava
- mv publish/Ryujinx publish/Ryujinx.Ava
- chmod +x publish/Ryujinx.sh publish/Ryujinx.Ava
- tar -czvf ../release_output/test-ava-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
- popd
shell: bash
- name: Pushing new release
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 00e6a25b0..c08e94357 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -3,13 +3,13 @@
true
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -45,7 +45,6 @@
-
diff --git a/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs b/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs
index 05782605b..732ec5d4c 100644
--- a/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs
+++ b/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs
@@ -46,7 +46,7 @@ namespace Ryujinx.Graphics.Gpu.Image
{
private const int MinCountForDeletion = 32;
private const int MaxCapacity = 2048;
- private const ulong MaxTextureSizeCapacity = 512 * 1024 * 1024; // MB;
+ private const ulong MaxTextureSizeCapacity = 1024 * 1024 * 1024; // MB;
private readonly LinkedList _textures;
private ulong _totalSize;
diff --git a/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs b/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs
index 4a00d4d8e..5036186ba 100644
--- a/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs
+++ b/src/Ryujinx.Graphics.Gpu/Shader/DiskCache/DiskCacheHostStorage.cs
@@ -22,7 +22,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
private const ushort FileFormatVersionMajor = 1;
private const ushort FileFormatVersionMinor = 2;
private const uint FileFormatVersionPacked = ((uint)FileFormatVersionMajor << 16) | FileFormatVersionMinor;
- private const uint CodeGenVersion = 6455;
+ private const uint CodeGenVersion = 6462;
private const string SharedTocFileName = "shared.toc";
private const string SharedDataFileName = "shared.data";
diff --git a/src/Ryujinx.Graphics.Shader/CodeGen/Spirv/Declarations.cs b/src/Ryujinx.Graphics.Shader/CodeGen/Spirv/Declarations.cs
index 4ff61d9f2..b74824255 100644
--- a/src/Ryujinx.Graphics.Shader/CodeGen/Spirv/Declarations.cs
+++ b/src/Ryujinx.Graphics.Shader/CodeGen/Spirv/Declarations.cs
@@ -356,6 +356,16 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv
context.AddGlobalVariable(perVertexInputVariable);
context.Inputs.Add(new IoDefinition(StorageKind.Input, IoVariable.Position), perVertexInputVariable);
+
+ if (context.Definitions.Stage == ShaderStage.Geometry &&
+ context.Definitions.GpPassthrough &&
+ context.HostCapabilities.SupportsGeometryShaderPassthrough)
+ {
+ context.MemberDecorate(perVertexInputStructType, 0, Decoration.PassthroughNV);
+ context.MemberDecorate(perVertexInputStructType, 1, Decoration.PassthroughNV);
+ context.MemberDecorate(perVertexInputStructType, 2, Decoration.PassthroughNV);
+ context.MemberDecorate(perVertexInputStructType, 3, Decoration.PassthroughNV);
+ }
}
var perVertexOutputStructType = CreatePerVertexStructType(context);
diff --git a/src/Ryujinx/Modules/Updater/Updater.cs b/src/Ryujinx/Modules/Updater/Updater.cs
index d8346c8eb..9f186f2b3 100644
--- a/src/Ryujinx/Modules/Updater/Updater.cs
+++ b/src/Ryujinx/Modules/Updater/Updater.cs
@@ -298,7 +298,14 @@ namespace Ryujinx.Modules
else
{
// Find the process name.
- string ryuName = Path.GetFileName(Environment.ProcessPath);
+ string ryuName = Path.GetFileName(Environment.ProcessPath) ?? string.Empty;
+
+ // Migration: Start the updated binary.
+ // TODO: Remove this in a future update.
+ if (ryuName.StartsWith("Ryujinx.Ava"))
+ {
+ ryuName = ryuName.Replace(".Ava", "");
+ }
// Some operating systems can see the renamed executable, so strip off the .ryuold if found.
if (ryuName.EndsWith(".ryuold"))
@@ -307,7 +314,7 @@ namespace Ryujinx.Modules
}
// Fallback if the executable could not be found.
- if (!Path.Exists(Path.Combine(executableDirectory, ryuName)))
+ if (ryuName.Length == 0 || !Path.Exists(Path.Combine(executableDirectory, ryuName)))
{
ryuName = OperatingSystem.IsWindows() ? "Ryujinx.exe" : "Ryujinx";
}
@@ -759,6 +766,43 @@ namespace Ryujinx.Modules
{
File.Delete(file);
}
+
+ // Migration: Delete old Ryujinx binary.
+ // TODO: Remove this in a future update.
+ if (!OperatingSystem.IsMacOS())
+ {
+ string[] oldRyuFiles = Directory.GetFiles(_homeDir, "Ryujinx.Ava*", SearchOption.TopDirectoryOnly);
+ // Assume we are running the new one if the process path is not available.
+ // This helps to prevent an infinite loop of restarts.
+ string currentRyuName = Path.GetFileName(Environment.ProcessPath) ?? (OperatingSystem.IsWindows() ? "Ryujinx.exe" : "Ryujinx");
+
+ string newRyuName = Path.Combine(_homeDir, currentRyuName.Replace(".Ava", ""));
+ if (!currentRyuName.Contains("Ryujinx.Ava"))
+ {
+ foreach (string oldRyuFile in oldRyuFiles)
+ {
+ File.Delete(oldRyuFile);
+ }
+ }
+ // Should we be running the old binary, start the new one if possible.
+ else if (File.Exists(newRyuName))
+ {
+ ProcessStartInfo processStart = new(newRyuName)
+ {
+ UseShellExecute = true,
+ WorkingDirectory = _homeDir,
+ };
+
+ foreach (string argument in CommandLineState.Arguments)
+ {
+ processStart.ArgumentList.Add(argument);
+ }
+
+ Process.Start(processStart);
+
+ Environment.Exit(0);
+ }
+ }
}
}
}
diff --git a/src/Ryujinx/Ryujinx.csproj b/src/Ryujinx/Ryujinx.csproj
index b3d312f62..2a5a9fadd 100644
--- a/src/Ryujinx/Ryujinx.csproj
+++ b/src/Ryujinx/Ryujinx.csproj
@@ -55,9 +55,6 @@
-
-
-