- Switch to Ryujinx MoltenVK build compiled with older Metal SDK to avoid
MSL 3.2 thread_scope_subgroup bugs that cause text rendering issues
- Exclude Apple from GNU ld.bfd linker option (macOS uses different linker)
- Handle VK_ERROR_FRAGMENTED_POOL in Vulkan descriptor pool allocation
I messed this file up hardcore too, sorry about that. Made sure to clean it up to look nice again.
Signed-off-by: Collecting <collecting@noreply.localhost>
Implements a new feature for the Updater for Linux users, that notifies them of the directory of where their backup folder has been made & stores their last version of the emulator. This folder is not stagnant, for now, it makes a backup folder wherever the AppImage is, so it'll create a new one if the AppImage is moved to a separate location. Can be looked into in the future to make it so users can select a location. For now, this works.
Signed-off-by: Collecting <collecting@noreply.localhost>
A lot of users have been confused when being notified of releases. Some users have their defaulted Update Channel to Stable. This is meant to showcase and inform that there's an option for releases.
Signed-off-by: Collecting <collecting@noreply.localhost>
Updater would still read from the AppImage path when making a backup directory, had to fix up & rewrite some of the logic to ensure that a backup is parsed & a folder is cracked within the original_appimage_path with std::filesystem so that it properly functions.
Signed-off-by: Collecting <collecting@noreply.localhost>
Evilperson1337 from Discord showcased a bug to where if you had a game stored within multiple folders in the game list, when you'd create a room the game would appear twice.
The fix was to add an std::set which will keep track of games Title ID's. The way it functions is simple, "Did I see this Title ID before? Yes or no?" and, as mentioned, will ensure there are no duplicate games being shown, ensuring one version of the game is present for selection.
Signed-off-by: Collecting <collecting@noreply.localhost>
Too lazy to change links to include warning message boxes as made for the Help section. Changed all strings relating to just forward directly to it regardless so users still are prompted both warnings of reading the rules before joining the Discord.
Signed-off-by: Collecting <collecting@noreply.localhost>
People started coming into the server stating that it was meant for stuff that we do not help people with. People don't enjoy reading rules, now there's 2 QDialog warnings to ensure people are forced to read.
Signed-off-by: Collecting <collecting@noreply.localhost>
When incorporating mouse hiding into the GRenderWindow I ended up not providing any logic for the mouse to appropiately hide during panning. This should solve the issue.
Signed-off-by: Collecting <collecting@noreply.localhost>
revert refactor(vulkan): Remove redundant query cache segment notifications
- Remove NotifySegment(true) from PrepareDraw, DrawTexture, and Clear
- Remove NotifySegment(false) from AccelerateDisplay
- Add state tracking for transform feedback to avoid redundant CounterEnable calls
- Only call CounterEnable when transform feedback enable state changes
This prevents double resume/pause operations and state management conflicts.
Co-authored-by: Maufeat <maufeat@eden-emu.dev>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
When viewport_scale_offset_enabled is false, properly set all viewports
using surface_clip dimensions instead of just one. This prevents vertex
explosions caused by invalid or zero-sized viewports.
- Set all viewports (Maxwell::NumViewports) when transformations disabled
- Ensure minimum viewport dimensions (1.0f) to prevent zero-sized viewports
- Respect device viewport limits when setting viewports
- Use proper viewport array instead of single viewport
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- Remove NotifySegment(true) from PrepareDraw, DrawTexture, and Clear
- Remove NotifySegment(false) from AccelerateDisplay
- Add state tracking for transform feedback to avoid redundant CounterEnable calls
- Only call CounterEnable when transform feedback enable state changes
This prevents double resume/pause operations and state management conflicts.
Co-authored-by: Maufeat <maufeat@eden-emu.dev>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- Filter blend factors: replace DestAlpha with One and OneMinusDestAlpha
with Zero for RGBX formats
- Disable alpha component in color write mask for RGBX formats
- Always use actual depth test function instead of defaulting when disabled
- Add FormatHasNoAlpha helper to detect RGBX formats
- Add FilterBlendFactor helper to adjust blend factors for RGBX formats
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- Add is_integer field to TextureDescriptor and TextureDefinition
- Use IsTexturePixelFormatInteger to detect integer textures
- Update ImageType to use U32[1] for integer textures, F32[1] for float
- Merge is_integer flag when combining texture descriptors
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Only warn when dimension differences exceed 16 pixels to avoid noise
from common codec alignment padding (e.g., 1088 vs 1080).
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Adds support for wrap mode 7 (MirrorOnceClampOGL) in the Vulkan renderer's
WrapMode function. This mode is mapped to VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
as Vulkan doesn't have a direct equivalent to OpenGL's GL_MIRROR_CLAMP.
Fixes assertion failure: "Unimplemented wrap mode=7"
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- Replace web_api_url references with lobby_api_url
- Add lobby API URL field to network configuration UI with restore default
- Add ReadNetworkValues/SaveNetworkValues to QtConfig for network settings
- Fix signed/unsigned comparison in lobby filter
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Fix ParameterVersion2 structure layout to match actual format:
- Add padding and use f32 for coefficients (was incorrectly using s16)
- Update state field offset from 0x17 to 0x25
Update command generation to:
- Read from correct structure based on version
- Convert float coefficients to fixed-point Q2.14 when using version 2
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- Prevent controller input processing until emulation is fully running
- Add null checks and prevent double deletion of NPAD callbacks
- Set callback_key to -1 after deletion to prevent reuse
Signed-off-by: Zephyron <zephyron@citron-emu.org>