Adrià
5bcbbeb449
Merge pull request #2371 from fisherjoey/fix/scanner-s-bfe-u32
...
fix(recompiler): apply the S_BFE_U32 width when the vertex fetch scanner folds constants
2026-10-10 08:16:16 +02:00
Adrià
189990dd1f
Merge pull request #2285 from Celegans12/fix/fetch-offset-double-add
...
fix(shader): count folded draw offsets once in the vertex and instance indices
2026-10-10 08:15:46 +02:00
Adrià
dac3aa547f
Merge pull request #2247 from mugurc/macos-nid
...
feat(nid): patch NIDs in Mach-O libraries
2026-10-10 08:15:03 +02:00
Adrià
3064754c6a
Merge pull request #1547 from russhil/feat/shader-barycentric-emulation
...
feat(shader): emulate fragment barycentrics with a generated geometry stage
2026-10-10 08:15:00 +02:00
Adrià
c94cbb7a58
Merge pull request #2279 from karanvora2599/perf/shader-nan-result-guard
...
perf(shader): choose the fma NaN result only when the result is NaN
2026-10-10 08:14:57 +02:00
Adrià
40aeb97d57
Merge pull request #1152 from alfalfa-star/perf/linux-direct-memory-import-chunks
...
perf(agc): share one dma-buf import per 64 MiB of Linux direct memory
2026-10-10 08:14:40 +02:00
Adrià
feea78cdd2
Merge pull request #2198 from XairRrR/fix/rect-list-fault-binding
...
fix(recompiler): bind the rect-list fault buffer in the tessellation control group
2026-10-10 08:14:27 +02:00
fisherjoey
79653e00be
fix(shader): carry a packed pixel ancillary through a phi into field extracts
2026-10-10 00:14:18 -06:00
Adrià
21b7876487
Merge pull request #2200 from XairRrR/fix/recompiler-sdwa-v-not-b32
...
fix(recompiler): accept SDWA destination selects on v_not_b32
2026-10-10 08:14:14 +02:00
Adrià
831e071786
Merge pull request #2199 from XairRrR/fix/recompiler-r8-snorm
...
feat(agc-driver): sample 8_SNORM images
2026-10-10 08:14:05 +02:00
Adrià
87be948954
Merge pull request #2191 from tezzgod74/fix/spirv-1.3-no-mesh-targets
...
fix(shader): keep vector selects valid on SPIR-V 1.3 targets
2026-10-10 08:13:36 +02:00
Adrià
4088f7f9a7
Merge pull request #2103 from karanvora2599/perf/shader-redundant-denormal-flush
...
perf(shader): drop denormal flushes of values that can't be denormal
2026-10-10 08:13:14 +02:00
Adrià
dacb0cdd28
Merge pull request #2137 from Sanjaysrinivas/feat/mesh-wave32
...
fix(shader): support wave32 mesh programs
2026-10-10 08:13:11 +02:00
Adrià
9614e0a602
Merge pull request #2141 from authurtabo-byte/fix/shader-sixteen-sampler-pairs
...
fix(shader): reserve heap space for sixteen sampler pairs
2026-10-10 08:13:09 +02:00
Adrià
63cd22f395
Merge pull request #2105 from Raghav314/perf/recompiler-post-dominators-postorder
...
perf(recompiler): compute post-dominators visiting successors first
2026-10-10 08:13:07 +02:00
Adrià
9bb5619c83
Merge pull request #2045 from CouchRiv/fix-shader-div-fixup-flush
...
fix(shader): flush v_div_fixup_f32 src1 and src2 denormals
2026-10-10 08:12:41 +02:00
Adrià
ccedc3a891
Merge pull request #1947 from oguzhanozfe/fix/audio-propagation-singular-path
...
fix(audio): recognize individual propagation path import
2026-10-10 08:12:21 +02:00
Adrià
692c397a6c
Merge pull request #1854 from Sanjaysrinivas/fix/shader-mode-registers
...
fix(shader): guard runtime MODE changes
2026-10-10 08:12:00 +02:00
Adrià
dbe8961752
Merge pull request #1963 from Deftera186/fix/shader-div-fmas-zero-overflow
...
fix(shader): return +0 when v_div_fmas_f32 cancels with |src2| >= 2^64
2026-10-10 08:11:36 +02:00
Adrià
7ced89fdcf
Merge pull request #2020 from karanvora2599/perf/shader-constant-factor-tininess
...
perf(shader): skip the tiny product check that a constant factor settles
2026-10-10 08:10:34 +02:00
Adrià
56bfc4d1c9
Merge pull request #2034 from TheAggie/fix/shader-truncated-decode-out-of-range
...
fix(shader): report a truncated memory, image or export instruction as out of range
2026-10-10 08:08:33 +02:00
raghav314 and Claude Opus 5.5
c7f4690cd3
fix(agc): host imports write-protect only pages a collect already protects
...
Importing guest memory collected the write watch over the whole import,
which write-protected every page of it, so pages nothing had collected yet
took a write fault on their first CPU write. The import now collects only
the parts a collect already protects (GuestWriteWatchCollectArmed). The
rest stays unprotected until something collects it, which reports it as
written; a GPU write recorded into such memory (MarkWritten) first collects
the never-collected parts of its 64 KiB blocks
(GuestWriteWatchCollectFresh), so that report is older than the GPU's
results and does not read as a CPU write over them.
Those pages are stamped as written and their CPU pages are noted, but the
block's CPU stamp is left alone, so a GPU label record or a pending storage
image elsewhere in the block does not see a CPU write. StoredOver and
UnchangedSinceCollected read the noted pages whenever a block has them, so
a store to such a page is still seen by a check over that page. The extra
generation step happens only when something was collected; a block whose
write protection fails is unwatched and the write returns no generation.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 11:38:28 +05:30
Adrià
2337e0d5d6
Merge pull request #2031 from Aryansh1520/fix/libc-tz-once
...
perf(libc): set TZ once on Linux
2026-10-10 08:08:28 +02:00
Adrià
9b67cbbd0a
Merge pull request #2022 from NahuelGenchi/fix/agc-unwritten-pixel-program
...
fix(agc): read an unwritten pixel program address as unset
2026-10-10 08:08:04 +02:00
Adrià
0f84feff1d
Merge pull request #2000 from hansjm10/fix/shader-f16-fma-single-rounding
...
fix(shader): round the f16 fused multiply-adds once
2026-10-10 08:08:00 +02:00
Adrià
473e64bc8c
Merge pull request #1860 from overlordxrz-source/feat/libkernel-shm-open
...
feat(libkernel): implement shm_open for anonymous objects
2026-10-10 08:07:24 +02:00
Adrià
3ef8f820af
Merge pull request #2016 from arvindfroi/test/agc-msaa-storage-target
...
test(agc): check MSAA storage emission without the device's support
2026-10-10 08:07:18 +02:00
Adrià
ffd80d7c6a
Merge pull request #2011 from CouchRiv/fix-shader-pk-minmax-clamp-dx10
...
fix(shader): clamp packed f16 min/max signaling NaN results to zero
2026-10-10 08:07:16 +02:00
Adrià
6324b00b5a
Merge pull request #1979 from Deftera186/fix/shader-sin-cos-exact-reduction
...
fix(shader): reduce v_sin_f32 and v_cos_f32 inputs exactly
2026-10-10 08:06:46 +02:00
Adrià
35eaa8b253
Merge pull request #1964 from CouchRiv/fix-spirv-continue-backedge
...
fix(shader): keep runtime image mode switches inside continue targets
2026-10-10 08:06:23 +02:00
Adrià
b86b0b1559
Merge pull request #1966 from Deftera186/fix/shader-ldexp-f16-inline-constants
...
fix(shader): read v_ldexp_f16 src1 float inline constants as f16
2026-10-10 08:06:15 +02:00
Adrià
832e7b4b6b
Merge pull request #1948 from arcwiser/fix/mimg-unsupported-opcode-diagnostic
...
fix(shader): name unsupported MIMG opcodes
2026-10-10 08:05:48 +02:00
Adrià
a02e0a176f
Merge pull request #1928 from fisherjoey/fix/agc-draw-rectangle-fallback
...
fix(agc): prepare a rect-list draw's missing rectangle at draw from its prepared stages
2026-10-10 08:05:23 +02:00
Adrià
737e2096ba
Merge pull request #1904 from fisherjoey/fix/shader-ancillary-vector-bfe
...
fix(shader): lower the packed pixel ancillary when its extract operands fold after it
2026-10-10 08:04:57 +02:00
Adrià
4adefa0708
Merge pull request #1898 from fisherjoey/fix/vop3-add-sub-clamp
...
fix(shader): saturate VOP3 v_add/sub_nc_u32 and 16-bit add/sub on clamp
2026-10-10 08:04:49 +02:00
a3186c59ef
fix(libc): format guest wide strings in swprintf as 16-bit units
...
The padded, exact-fit and invalid-conversion swprintf checks come from #1512 .
Co-Authored-By: Noface07 <[email protected] >
Co-Authored-By: Claude Opus 5.5 <[email protected] >
Claude-Session: https://claude.ai/code/session_01ULF8vCbJFyzxVsW3SfiWC5
2026-10-10 08:04:44 +02:00
Adrià
f3999054bd
Merge pull request #1648 from Pedroj-64/fix/videoout-closed-port-flip-cancel
...
fix(videoout): cancel flips on a port the title closed instead of failing the driver
2026-10-10 08:03:46 +02:00
Adrià
e0526f57cd
Merge pull request #1686 from Cloud-Multiplayer/feat/macos-write-watch
...
feat(libc): write watch on macOS hosts
2026-10-10 08:03:40 +02:00
Adrià
292ecfb0be
Merge pull request #1734 from TheAggie/feat/agc-texture-pipe-bank-xor
...
feat(agc): detile XOR-swizzled textures whose base carries a pipe/bank XOR
2026-10-10 08:00:45 +02:00
Adrià
6f51afaa7e
Merge pull request #1736 from TheAggie/feat/agc-color-8888-uint
...
feat(agc): accept 8_8_8_8 UINT color targets
2026-10-10 07:59:59 +02:00
Adrià
29b4429870
Merge pull request #1485 from Celegans12/feat/agc-10-11-11-unorm-color-targets
...
feat(agc): implement 10_11_11 unorm color targets through 32-bit uint attachments
2026-10-10 07:58:55 +02:00
Adrià
fc50fde970
Merge pull request #1629 from ahmedhamouda78/feat/agc-dcb-reset-queue
...
feat(agc): write the measured sceAgcDcbResetQueue packet sequence
2026-10-10 07:58:22 +02:00
Adrià
a2236210c3
Merge pull request #1605 from QRMOE/fix/shader-bitfield-mask-overflow
...
fix(shader): truncate overflowing 32-bit bitfield masks
2026-10-10 07:58:20 +02:00
Zurisen
6d7d4b09e4
test(libkernel): check that a combined flock operation takes an exclusive lock
2026-10-10 07:55:48 +02:00
Zurisen
0f770d2203
fix(libkernel): return EWOULDBLOCK from a contended LOCK_NB flock
...
flock_nid_postfix threw on every failure, so a LOCK_NB request on a lock
held through another descriptor ended the process. FreeBSD flock(2)
returns -1 with EWOULDBLOCK there. Return guest errno 35 when LOCK_NB is
set and the host reports the lock as held: ERROR_LOCK_VIOLATION on
Windows, EWOULDBLOCK on Linux. Other failures still throw.
2026-10-10 07:55:48 +02:00
Dean
cbe83bbd20
Merge pull request #1755 from Zurisen/fix/windows-flock-semantics
...
fix(libkernel): give flock BSD semantics on Windows
2026-10-10 18:53:55 +13:00
Dean
903863c974
Merge pull request #959 from JAB-dev/feat/ngs2-pan
...
feat(libSceNgs2.native): implement sceNgs2PanInit and sceNgs2PanGetVolumeMatrix
2026-10-10 18:53:48 +13:00
raghav314 and Claude Opus 5.5
f2bd6d4afd
fix(recompiler): emit a formatted buffer access through one function per resource
...
A formatted buffer load or store whose format comes from a prepared
descriptor emitted the switch over every buffer format inline, at each
access. The switch is now emitted once per resource, component count and
direction as a SPIR-V function taking the index, offsets, record count and
storage buffer offset, and each access calls it. Specialization still folds
the switch to the descriptor's format. Accesses through GPU-selected
descriptors keep the inline switch.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 11:23:17 +05:30
Scott Schuster and Claude Opus 5.5
8bba489932
fix(libc): parse fopen and freopen modes as FreeBSD does
...
FreeBSD's __sflags reads the access character, then b, +, x, e and v, and
stops at the first other character without failing, so "rt" opens for
reading. On Windows fopen inserted b after the first character and passed
the rest on, so "rt" became "rbt", the CRT rejected it with EINVAL, and
fopen threw. vkQuake opens history.txt with "rt" at startup. freopen
accepted only a fixed list of modes.
Both now parse the mode like __sflags. An unknown access character, or x
on a read-only stream, returns NULL with EINVAL; x on an existing file
returns NULL with EEXIST; e and v are accepted and ignored.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 00:48:13 -05:00
Scott Schuster and Claude Opus 5.5
456dc87879
feat(libkernel): accept MAP_ALIGNED_SUPER in mmap
...
An anonymous private mapping with MAP_ALIGNED_SUPER (FreeBSD MAP_ALIGNED(1))
is placed on a 2 MiB superpage boundary. Yamagi Quake II requests it for its
hunk allocations of 2 MiB and more.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-10 00:47:40 -05:00