Commit Graph

8250 Commits

Author SHA1 Message Date
Herman S.
9c37af4621 [Vulkan] Add proper tracking to swap gamma correction render pass 2026-02-25 12:31:18 +09:00
Herman S.
223aa70171 [Vulkan] Add semaphor reuse workaround and cvar 2026-02-25 12:31:18 +09:00
Herman S.
6de637b794 [Vulkan] Smear scalar bools.
Addresses some shader validation warnings
2026-02-25 12:31:18 +09:00
Herman S.
d505b6b53a [Vulkan] Create per-swapchain-image present semaphores
Fixes vulkan validation issues.
2026-02-25 12:31:18 +09:00
Herman S.
74ce1c812f [Vulkan] Fix VUID-FragDepth-FragDepth-04216 validation issue 2026-02-25 12:31:18 +09:00
Herman S.
bf880fde0c [Vulkan] Fix alignment related validation errors 2026-02-25 12:31:18 +09:00
Herman S.
77852914ff [GPU] TextureCache lockless pre-check
lockless accessors for base_outdated/mips_outdated and skip lock
acquisition when textures appear up to date
2026-02-25 12:31:18 +09:00
Herman S.
067641668f [GPU] Fix min/max blend operations to properly apply factors
Applies factors before the MIN/MAX operation - in FSI/ROV via runtime
blending, in FBO/RTV by pre-multiplying shader output when dstFactor is
ONE only, as we don't have access to dest to provide full support as we
do in the FSI/ROV paths.
2026-02-25 09:39:03 +09:00
Herman S.
966d8f0925 [Vulkan] fix FBO path reading from output variables for alpha test
Makes FBO follow the same pattern as FSI by using function scoped
intermediate variables
2026-02-25 09:38:58 +09:00
Herman S.
2d7ca4fb39 [GPU] Remove log spam for empty region resolve issues.
Affects Forza Horizon 1 and 2, does not seem to be related to any
actual rendering issues but makes it very difficult to debug real
problems.
2026-02-25 09:11:03 +09:00
Herman S.
1e23aaf4fc Improve error handling in graphics memory init 2026-02-25 09:10:48 +09:00
Herman S.
337afcf318 [XMA] fix unsigned underflow when packet has no frames 2026-02-24 14:32:54 +09:00
Herman S.
80a78c509f [XMA] Write back output_buffer_read_offset in StoreContextMerged 2026-02-24 14:32:54 +09:00
Herman S.
6265698eef [XMA] Swap input buffer on unresolvable split headers 2026-02-24 14:32:54 +09:00
Herman S.
d68ff7243a [XMA] Fix consume-only path write offset and drain check 2026-02-24 14:32:54 +09:00
Herman S.
6ee55aafb4 [XMA] Guard against subframe_decode_count being 0 2026-02-24 14:32:54 +09:00
Herman S.
013320c051 [XMA] Implement loop subframe precision 2026-02-24 14:32:54 +09:00
Herman S.
8586cc196d [XMA] Add diagnostic logging to new decoder 2026-02-24 14:32:49 +09:00
Herman S.
51c5936566 [XMA] convert GetNextPacketReadOffset from recursion to iterative loop 2026-02-24 12:41:08 +09:00
Herman S.
470e62af22 [XMA] detect full packet skip sentinel and advance rather than overshoot 2026-02-24 12:41:02 +09:00
Herman S.
a1eef3a2b8 [XMA] swap to valid buffer instead of stalling when current is invalid 2026-02-24 12:40:56 +09:00
Herman S.
d759938979 [XMA] skip split frame tails instead of decoding as complete frames 2026-02-24 12:40:47 +09:00
Herman S.
cc53e0252a [XMA] don't queue output subframes when frame decode fails 2026-02-24 12:40:39 +09:00
Herman S.
2c75055caf [XMA] treat frame_size 0 as end-of-packet padding (XMA1 compat) 2026-02-24 12:40:31 +09:00
The-Little-Wolf
dd585ca0c8 [XboxKrnl/Crypt] - Implement XeCrypt & XeKeys Functions (#566)
- Implement XeKeysGetConsoleID, XeKeysGetKeyProperties, XeCryptDesEcb, and XeCryptDesKey.
- Stub XeCryptBnQwBeSigVerify, XeCryptRotSumSha, XeKeysGetKey, and XeKeysConsolePrivateKeySign.
2026-02-23 17:33:19 +09:00
Adrian
8d5565da8a [Misc] Fixed missing guard header (#887) 2026-02-23 17:07:23 +09:00
Herman S.
9190ce3e36 Revert "[CPU] Detect FPSCR exceptions in UpdateFPSCR for Rc=1 FPU instructions"
This reverts commit a769d70761.
Causes audio issues in The Godfather
2026-02-22 20:28:27 +09:00
Gliniak
b2b1307822 [XAM] Improvements to XamUserCheckPrivilege
- Handle case when XamUserCheckPrivilege receives ANY USER
- Handle case when User is not live signed. This function returns NOT_LOGGED_IN for local accounts
2026-02-19 23:13:09 +01:00
Gliniak
9bfaff5040 [XAM] Fixed issue with XamContentCreate reassigning already assigned symlinks 2026-02-19 21:02:45 +01:00
Radosław Gliński
bc69b95db6 [Github] Disable counting tests to code summary 2026-02-19 11:50:21 +01:00
Herman S.
d9747704be [XMA] Reserve headroom per decoded frame and account for it in gating
The 3-bit field at +24bit in DWORD 1 of the XMA context was named
subframe_skip_count but never actually used for skipping subframes.
Testing across multiple titles (PGR4, Halo Reach) shows the field
might control extra output buffer blocks that must be reserved per decoded
frame. Renaming the field to output_buffer_padding to reflect this
observed behavior and adding padding to the minimum output space threshold

Pdding blocks are reserved from the output budget after each frame is
fully consumed, preventing the decoder from overrunning the space
that the game expects to remain free.

This is still likely not entirely correct but reduces some of the
observed noise in current implementation.
2026-02-18 18:14:44 +09:00
Herman S.
83d776fa39 [Vulkan] Add tesselation support
Pretty much just following the D3D12 implementation
2026-02-18 00:02:21 +09:00
Herman S.
3e3aee1ef2 [App] Update title to show apu and remove vulkan incomplete warning 2026-02-17 23:50:40 +09:00
Herman S.
fade0cd889 [APU] Add ALSA apu on Linux 2026-02-17 23:46:16 +09:00
Herman S.
48c13be2d5 [Vulkan] Add gamma_render_target_as_srgb support 2026-02-17 23:35:59 +09:00
Herman S.
5d74d69aa8 [Vulkan] Alpha to coverage FSI implementation 2026-02-17 22:46:18 +09:00
Herman S.
792e61f6e2 [Vulkan] Alpha to coverage improvements
Refactor redundant code, fix 2x MSAA sample mapping and
only declare gl_FragCoord when alpha to coverage can run
2026-02-17 22:46:14 +09:00
Herman S.
cba315cf38 [Vulkan] Implement alpha to coverage (FBO)
Fixes the foliage rendering in places like Red Dead Redemption menu
2026-02-17 22:43:27 +09:00
Herman S.
75589de0a4 [Vulkan] Ensure descriptor sets always initialized for user_clip_planes 2026-02-17 22:18:21 +09:00
Herman S.
f13ee6ec38 [Vulkan] Add support for user clip planes 2026-02-17 22:18:02 +09:00
Herman S.
0b7abf0241 [Vulkan] Add resolution scaling mips support 2026-02-17 21:46:50 +09:00
Herman S.
cd7b47235d [GPU] Properly handle scaled textures and weights
Fix d3d12 logic wrt scaling weights, add vulkan impelementation for using
scaled texture offsets and fix resolution-scaled texture detection
2026-02-17 21:44:18 +09:00
Herman S.
55f0333182 [Vulkan] Fix incorrect scaling EDRAM tile span parameters
These parameters are EDRAM tile coordinates in guest space and shouldn't
be scaled. Fixes visual issues in certain games when upscaling.
2026-02-17 21:43:05 +09:00
Herman S.
5897de3eaf [Vulkan] Implement tiled_shared_memory for resolution scaling
Adds support for >3x resolution scaling to vulkan by implementing
sparse scaled resolve similar to the d3d12 implementation.
2026-02-17 21:31:25 +09:00
Herman S.
a092551735 [Vulkan/D3D12] Validate upload range bounds before vastcpy
The D3D12 backend's existing check only validated the last page of the
range. The Vulkan backend had no check at all and did not respect the
gpu_allow_invalid_upload_range cvar. Both now verify start and
end pages are mapped before copying, preventing access violations when
games reference unmapped guest physical memory during transitions.
2026-02-17 21:22:48 +09:00
Herman S.
3e1b0c715a [Vulkan] Vertex buffer residency caching
Cache vertex buffer address/size per fetch constant, invalidate on fetch
constant write, reset at frame boundaries
2026-02-17 21:22:00 +09:00
Herman S.
2ad412a141 [Vulkan] Add support for vkPipelineCache 2026-02-17 21:21:56 +09:00
Herman S.
6057b0a7c7 [Vulkan] Implement ClearCache to clear upload_buffer_pool 2026-02-17 21:10:38 +09:00
Herman S.
4d15f0afea [Vulkan] Implement same vastcpy upload_buffer optimization as d3d12 2026-02-17 21:10:13 +09:00
Herman S.
ef505fbe3d [Vulkan] add no_discard_stencil_in_transfer_pipelines support 2026-02-17 17:54:01 +09:00