Commit Graph

8593 Commits

Author SHA1 Message Date
Adrian
35c513bfa2 [XAM] Fixed UserData reading incorrect variant type 2026-07-04 14:47:33 +02:00
Adrian
2c94e46727 [GPU] Reduce log spam from D3D12 pipeline 2026-07-03 18:24:32 +02:00
Gliniak
9588ce244d [CPU/X64] Preserve NaN bit during float->double, double->float conversion
Probably this should be moved to ppc_emit_memory level instead of being x86-64 specific

Was AI used in this change: Yes
2026-06-29 22:50:14 +02:00
Michael Oliver
9781a75a22 [GPU] Avoid stale texture state after invalidation
Check shared memory validity before marking textures up to date and installing watches. If the backing range was invalidated, leave the texture outdated so it can be reloaded later.
2026-06-29 10:16:20 +02:00
The-Little-Wolf
a421f8da52 [Xam/Info] - Implement XGetOverlappedExtendedError
- Implement XGetOverlappedExtendedError
2026-06-29 09:16:56 +02:00
Margen67
8b948d503f [CI] Upgrade cache action to v6 2026-06-27 22:11:44 -07:00
Adrian
1e7c1f6773 [VFS] Fixed opening files with incompatible access flags on posix 2026-06-27 00:06:24 +02:00
Margen67
0b4e6c440e [xb] Add VS2026 to vs_generator_map 2026-06-24 23:24:42 -07:00
Margen67
dd858e234c [CI] Cleanup
Use new archive input to rework artifacts.
Add runs-on and llvm_version inputs and ubuntu_base output to Lint so it can be passed to the Linux job.
Remove broken config input.
Upgrade Windows to VS2026.
2026-06-23 23:23:45 -07:00
Gliniak
2771366b8b [XAM] Simplified loader_data structure.
- Removed launch_data_present replaced with empty check

Fixed regression introduced in 269ee61845
2026-06-23 20:58:28 +02:00
Gliniak
9c8e34b29e [Kernel] Moved kernel memory allocation to proper location.
- Moved few globals to kernel memory range to prevent overuse of SystemHeapAlloc
2026-06-22 22:34:03 +02:00
Michael Oliver
0f281b6cb6 [CPU] fix vector store tests 2026-06-22 10:03:14 +02:00
Gliniak
b268292046 [Kernel] Use single page to store all Vd pointers and structs
This is to prevent some titles from reaching out of memory crash
2026-06-21 17:52:09 +02:00
Adrian
e7d0e45095 [XAM] Fixed returning error in XamLoaderGetLaunchDataSize 2026-06-19 20:01:08 +02:00
bomabomabomaboma
d55670e40b [GPU] Rolls back ZPD cache erasure on guest BEGIN. Only affects kFast. 2026-06-19 08:02:34 +02:00
Adrian
269ee61845 [XAM] Fixed returning error in XamLoaderGetLaunchData
Fixed Assassin's Creed switching xex on boot.
2026-06-18 13:25:18 +02:00
Gliniak
72ce130971 [CPU] Xbox360 cache line is always 128 bytes
Fixes: 4E4D07E0 & 4E4D083D
2026-06-14 13:38:01 +02:00
Michael Oliver
30ac9d7be6 [CPU] fix correct partial vector stores
Replace the x64 STVL/STVR lowering with explicit byte stores that preserve the
guest-visible vector byte order.

The previous vector shuffle/blend path could write incorrect bytes for partial
vector stores, which broke optimized guest memcpy implementations using
stvlx/stvrx for unaligned heads and tails. In 4156081C this corrupted skinned
model render command data and eventually caused render-thread crashes.

Add regression coverage for StoreVectorLeft/StoreVectorRight across common
unaligned offsets, plus a memcpy-head style case matching the affected guest
instruction pattern.
2026-06-11 21:14:23 +02:00
The-Little-Wolf
2027f50b6e [Xam/User_profile] - Add missing filenames & device types
- Add missing XTileType filenames
- Add missing device types
- Add XamLoaderLaunchTitle/Ex Flags
- Add ExThreadCreate flags and logging (from nukernel)
- Add more logging to user_module
- Add missing XamReadTileEx param
2026-06-11 20:37:55 +02:00
Gliniak
49c700b9c5 [XMP] Return success for XMPGetMediaSources with 0 sources
- Renamed XMPDashInIt to XMPDashInit
- Added broadcast to XMPDashInit
- Renamed some unknown fields of XMP_SET_MEDIA_SOURCE_WORKSPACE
2026-06-06 10:59:38 +02:00
Gliniak
99fd19d025 [XAM] Limit XContentQueryVolumeDeviceType to XContent packages
Some checks failed
Orchestrator / Commit Message Validation (push) Has been skipped
Orchestrator / Lint (push) Successful in 1m23s
Orchestrator / Windows (x86-64) (push) Failing after 5m18s
Orchestrator / Linux (x86-64) (push) Failing after 22m34s
Orchestrator / Create Release (push) Has been skipped
- Changed mount path for XContent packages from Cdrom to Package_0
Normally it should generate specific value instead of 0, but for now 0 is enough
2026-06-05 16:13:31 +02:00
Gliniak
9478cda5d6 [Kernel] Fixed issue with titles not booting due to lack of title id 2026-06-03 22:45:54 +02:00
Adrian
be6e53e383 [XAM] Fixed missing CreateFolder in XamWriteGamerTile
Fixed Rez HD failing to get past main menus in unlocked state.
2026-06-02 20:36:25 +02:00
bomabomabomaboma
73945c06d7 [GPU] Simplify ZPD cvars 2026-06-02 20:09:50 +02:00
bomabomabomaboma
fbd620c22b [GPU] Implement ZPD occlusion queries
Implements EVENT_WRITE_ZPD handling across shared CommandProcessor, D3D12, and Vulkan backends.

This adds a shared report lifecycle. Reports can span submissions/render passes, split into multiple segments, and asynchronously retire. Reports can also survive same-slot reuse, which is critical for titles that aggressively recycle against a small pool.

RTV/FBO use their respective host occlusion queries, whereas ROV/FSI use counter buffers instead, with shader helpers that are called from the translated PS, accumulating surviving MSAA sample coverage into active slots. Regardless of approach, results are copied to small, dedicated readbacks and fed through shared retirement.

Fast mode writes speculative values and patches in resolved results later. Strict mode waits for real results with a small retire backstop so it doesn't spin forever when a report gets weird. Fake mode's fundamentals are unchanged, it just now uses XenosZPDReport memory helpers like all the modes do.

Also adds optional sample count saturation for instances when attenuation isn't a one-for-one with real hardware, an optional alternate fast behavior that preserves cached zeroes (that can improve flare-heavy titles but might regress occlusion culling), and normalization for upscaling.

QueryBatch is still unsupported other than a fake path that's enabled when a range is set via cvar.
2026-05-30 19:26:25 +02:00
Gliniak
29311ddcdd [APU] Replaced min-max with clamp for queued frames 2026-05-26 22:58:46 +02:00
Gliniak
c5113acb9c [CPU] XexModule: Removed unused class member 2026-05-26 22:56:37 +02:00
The-Little-Wolf
7a5cb96c2e [XAM/INFO] - IPTV Initialization Setting
- Allow for initializing IPTV
- Stub XamGetDvrStorage
- Stub XamSetDvrStorage
2026-05-26 19:36:34 +02:00
Gliniak
7e98ae6de3 [XMA] Invalidate output buffer if there is nothing to process
- Fixes 565507E4 hardlock on boot
2026-05-26 09:27:02 +02:00
oreyg
505697f980 [APU] XmaContextNew: refine output buffer invalidation 2026-05-25 11:54:18 +02:00
Gliniak
02a0d697cb [Base] Added option to recursively search for file 2026-05-24 22:35:40 +02:00
Adrian
c48e0f29e5 [XAM] Implemented XUserAwardGamerPicture 2026-05-24 20:18:46 +02:00
The-Little-Wolf
a7e13e195b [Xam/Content] - Implement XamContentResolveInternal
- Implement XamContentResolveInternal
2026-05-23 20:21:55 +02:00
oreyg
09dbe2cd36 [APU] XmaContextNew: do not invalidate output_buffer_valid prematurely 2026-05-21 20:54:10 +02:00
Adrian
b2aa8b200a [BASE] Use FlushAllSinks instead of inline loop 2026-05-21 07:43:48 +02:00
Gliniak
a11908fa76 [XAM] Enable storing IPTV name.
Still needs to be exposed in UI (optional)
2026-05-19 23:31:53 +02:00
Gliniak
072ef7eff7 [XAM] Implemented XamGetOnlineLanguageAndCountry 2026-05-19 22:37:14 +02:00
Gliniak
9ce91e55fe [UI] Listed extended languages 2026-05-19 22:03:54 +02:00
Gliniak
99ea6da18a [XConfig] Implementation of XConfig 2026-05-19 07:50:16 +02:00
The-Little-Wolf
f88bfbe41e [Xam/Content] - Implement XamContentCreateEnumeratorInternal
- Implement XamContentCreateEnumeratorInternal
2026-05-18 20:30:38 +02:00
Gliniak
ef67d1ca3f [SMC] Removed std::bind usage in favor of lambda 2026-05-18 19:52:12 +02:00
Gliniak
482629a3b1 [XAM] Fixed issue with different param count in XamFormatDateString and XamFormatTimeString
In older dashes filetime is in r4 then output buffer in r5
but on newer it's in r3 and r4
2026-05-17 17:34:39 +02:00
Adrian
a261b83def [APP] Flush log & save config on quick exit 2026-05-17 12:05:20 +02:00
Gliniak
4c396fe611 [XAM] Implemented XamGetLanguageLocaleFallbackString and XamGetLanguageTypeface
- Added stub XamGetLanguageTypefacePatch
- Moved locale related calls to xam_locale from xam_info
2026-05-17 10:49:08 +02:00
The-Little-Wolf
dc4db67f9c [Kernel] - Change OddObj to X_DISPATCH_HEADER
- Change OddObj to X_DISPATCH_HEADER
- Add unknown X_KWAIT_REASON flag
- Fixed InitializeGuestObject mistake
- Replaces unknowns in kthread using nukernel as reference
2026-05-16 23:57:19 +02:00
oreyg
c2674b19d2 [Vulkan] Drop vertex buffer residency cache, hoist global lock like D3D12 2026-05-15 14:58:51 +02:00
oreyg
b15fcc73e6 [Vulkan] Route guest oDepth through gl_FragDepth in FBO and into FSI depth test 2026-05-15 10:25:54 +02:00
Adrian
6181160ed4 [XAM] Fixed XEX swap failing to remove prefix
Fixed Splinter Cell: Double Agent xex swapping from singleplayer to multiplayer.
2026-05-15 09:42:14 +02:00
oreyg
562aa0dd91 [Vulkan] Only declare the clip-distance or cull-distance array that is written 2026-05-15 09:00:26 +02:00
oreyg
02a2591295 [Vulkan] Port ac6_ground_fix vertex-fetch nudge to SPIR-V 2026-05-15 08:31:10 +02:00