Commit Graph

8464 Commits

Author SHA1 Message Date
Herman S.
0e2967cdb0 [D3D12] Fix 3D-to-2D texture crash under Wine/VKD3D 2026-02-26 14:22:46 +09:00
Herman S.
e7941b0c7d [GPU] 3d-to-2d textures default enable
Replaced the modal cvar with bool gpu_3d_to_2d_texture with "mode 2" now enabled by
default and "mode 1" removed as unnecessary
2026-02-26 14:22:46 +09:00
Herman S.
90c48e1d21 [GPU] 3d-to-d2 texture implementation
Adds vulkan version of mode 1 and 2 and fixes related crashes by keeping
the 2d texture views from the texture cache.
2026-02-26 14:22:46 +09:00
Herman S.
7c9b5af236 [D3D12] add cvar to control 3d-to-2d texture mode 2026-02-26 14:22:46 +09:00
Raffaele
fc5ab60a88 [D3D12] Fix 4D5307DF fur textures
- Fixes issue https://github.com/xenia-canary/game-compatibility/issues/6
- Implements a load texture logic
2026-02-26 14:22:46 +09:00
Raffaele
26824edcfa [D3D12] Fix 4D5307DF fur textures
- Fixes issue https://github.com/xenia-canary/game-compatibility/issues/6
- Implements a copy texture logic
2026-02-26 14:22:46 +09:00
Herman S.
bc54720559 [XMA] Fix consume-only context resetting output buffer offsets
And remove the now-unused HasTightOutputBuffer heuristic
2026-02-26 10:28:49 +09:00
Herman S.
aaf284a4b0 [Vulkan] Fix fullscreen corrupting HDR state on Windows 2026-02-25 12:31:18 +09:00
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
Triang3l
95a5c3ee25 [GPU/WGF] Bind EDRAM to resolve dumping via ByteAddressBuffer
Simplifies binding by eliminating the need to switch between 32-bit and
64-bit views, and makes it possible to bind the EDRAM via a root descriptor
on Direct3D 12.
2026-02-18 22:40:20 +03:00
Triang3l
17bc5b48e3 [GPU/D3D12] Remove now-unused typed shared memory descriptors
All usage instances changed to ByteAddressBuffer.
2026-02-18 16:41:36 +03: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
Triang3l
80dad41454 [GPU/WGF] Use ByteAddressBuffer in precompiled shaders
Drivers and hardware may provide more optimal paths for untyped buffers
compared to typed.

Also, ByteAddressBuffer may be bound via a root descriptor in Direct3D 12,
greatly simplifying the binding logic.

ByteAddressBuffer also doesn't have the 128 * 2^20 element count limit that
typed and structured buffers have, and doesn't require the structure stride
to be specified at resource creation time in Direct3D 11.
2026-02-17 23:28:42 +03: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