The QScrollArea containing the top navigation buttons was slightly too tall for horizontal UI positioning, causing an unwanted vertical scrollbar to appear. This has been fixed by calculating the exact required height for the buttons and enforcing it on the scroll area, while also setting the vertical scrollbar policy to ScrollBarAlwaysOff.
Signed-off-by: Collecting <collecting@noreply.localhost>
Fix crash in PinHandle when SMMU allocation fails and unmap queue is empty.
Previously, the code would log an error and continue looping indefinitely,
causing log spam and eventual crash.
- Free multiple handles from unmap queue (up to 100) before giving up
- Add maximum attempt counter to prevent infinite loops
- Return 0 gracefully when no more handles can be freed
- Add error handling in callers (Remap, MapBufferEx, MapBuffer) to check for
PinHandle failure and return NvResult::InsufficientMemory instead of using
invalid addresses
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Fix crash in PinHandle when SMMU allocation fails and unmap queue is empty.
Previously, the code would log an error and continue looping indefinitely,
causing log spam and eventual crash. Now it returns 0 to fail gracefully.
Also fix incorrect handle check on line 219 - should check freeHandleDesc
instead of handle_description.
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Remove strict assertion on data_transfer_type and allow PIPELINED
transfers (treating them as NON_PIPELINED). Some games like Marvel
Cosmic Invasion use pipelined transfers, causing crashes.
Fixes assertion at maxwell_dma.cpp:76
Signed-off-by: Zephyron <zephyron@citron-emu.org>
The automatic Windows updater was failing to install updates after downloading
and unpacking. The batch script had several issues:
- Read-only file attributes were not being removed before copying, causing
xcopy to fail silently
- xcopy was unreliable and didn't provide good error codes
- No retry logic for transient file lock issues
- Insufficient wait time after process closure
Changes:
- Replace xcopy with robocopy for more reliable file copying
- Remove read-only attributes from all destination files before copying
- Add retry logic (up to 3 attempts) for copy operations
- Improve process wait logic with timeout and additional delay
- Add verification that critical files were copied successfully
- Enhance error messages to help diagnose issues
- Add retry logic for cleanup operations
This fixes the issue where updates would download and unpack but fail to
install.
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- Force shadow maps to use CLAMP_TO_BORDER with white border color
- Convert CLAMP_TO_EDGE to CLAMP_TO_BORDER for shadow maps
- Improve GL_CLAMP handling for shadow maps on AMD
Issue may persist - likely needs investigation of shadow map rendering
or shader coordinate generation.
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Fix UNIMPLEMENTED assertion when handling GPU-modified ignored textures
in texture cache. When ignored textures (remapped or same address/size)
have GpuModified flag set, now properly copies data to new image if
formats match, or marks new image as modified otherwise.
Signed-off-by: Zephyron <zephyron@citron-emu.org>
- 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>