Commit Graph
2386 Commits
Author SHA1 Message Date
Tyler WesterbergandClaude Opus 5.5 18522aeabb fix(agc): wait for queued registration preparations before accepting a submission
Since registered shaders are prepared in the background, a draw whose shader
was registered just before could wait seconds for its preparation inside the
queue worker. Under CPU load Goat Simulator 3's first submissions took ~3.7 s;
the title treated the GPU as hung, stopped submitting, and its 10 s garbage
collection timeout crashed it on every launch. Driver::Submit now waits for
the preparations queued before it, on the submitting thread, before the
commands reach the GPU.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 19:26:46 +02:00
Adrià e154f56585 Merge pull request #5844 from p3n1cillin/claude/audioout-ex-open
feat(libSceAudioOut): open HDMI bitstream ports with sceAudioOutExOpen
2026-10-14 19:17:02 +02:00
Adrià b60e0bc0a5 Merge pull request #4676 from milescoviello/fix/socket-msg-dontwait
fix(libkernel): accept MSG_DONTWAIT in the socket send and receive calls
2026-10-14 19:13:53 +02:00
Adrià 5ef619a914 Merge pull request #5813 from eliyarson/trace-drop-detail
feat(agc): report which trace threads dropped events and where their buffers filled
2026-10-14 19:10:18 +02:00
Adrià c14fd87044 Merge pull request #4721 from fdfawef324/build/stable-import-libraries
build(libs): keep import libraries stable so a source edit relinks one library
2026-10-14 19:08:35 +02:00
Dean 19e020a274 Merge pull request #1186 from MichonGoddijn231849/feat/depth-plane-array-base-slice
feat(agc): sample depth plane arrays from a later base slice
2026-10-15 06:04:53 +13:00
Eli Yarson a53332472c feat(agc): report which trace threads dropped events and where their buffers filled
The trace summary line keeps `trace_dropped` as before: true when any
thread lost a slice, any thread's totals table was full, or the gpu
track was full. When it is true, the line now also carries
`trace_dropped_threads`, one entry per affected thread name, so the reader
can tell which thread lost data and how much. Threads that share a
name, such as the shader prepare threads, share one entry: losses are
summed, the earliest fill is kept and totals_full is true if any is.

Each entry has `events_full_after_s`, the seconds from the first
present of the window to the start of the first lost slice. It is
absent for `gpu` and in every summary line (windowed frames/seconds
and APS5_TRACE_SUMMARY_EVERY) whenever the first lost slice starts
outside the line's span of presents, including a slice whose scope
began before the window opened or one lost after the last present.
`events_lost` is the number of slices not recorded and is absent when
0; in interval lines it counts the buffer's losses since it started.
`totals_full` is true when the thread's totals table overflowed, which
makes the summary numbers incomplete; a thread with only `events_lost`
has complete totals.

The Chrome trace gets a `trace buffer full` instant event on a thread
at the point where its buffer filled.

BUILD.md documents the new fields and the event.

`trace_dropped` is unchanged, and when nothing drops the default output
is byte-identical to before.

Refs #5786
Depends on #5808
2026-10-14 18:54:44 +02:00
Adrià e34c479210 Merge pull request #758 from Celegans12/feat/agc-image-tables-global
feat(agc): implement image tables loaded through 64-bit pointers
2026-10-14 17:53:44 +02:00
Adrià 763ad20fc1 Merge pull request #757 from Celegans12/feat/agc-image-tables
feat(agc): implement image and sampler tables indexed at runtime offsets
2026-10-14 17:48:32 +02:00
Adrià a453108cf7 Merge pull request #5817 from snipeTR/feat/voice-reset-port
feat(libSceVoice): implement sceVoiceResetPort
2026-10-14 17:23:46 +02:00
Adrià 979ad7b6aa Merge pull request #5861 from simonbronk/feat/sample-location-grid
feat(agc): rasterize sample locations that vary between pixels through a 2x2 grid
2026-10-14 16:44:29 +02:00
Adrià 41cf107810 Merge pull request #5853 from KernelPanicNT/feat/system-gesture-recognizer-information
feat(libSceSystemGesture): implement sceSystemGestureGetTouchRecognizerInformation
2026-10-14 16:44:03 +02:00
Celegans12 34525fdf7a feat(agc): implement image tables loaded through 64-bit pointers
Plan runtime-indexed T# and S# columns read through a 64-bit pointer.
Preserve the console offset alignment, signed immediate and key bounds.
Track the descriptor dwords consumed by each table in its invocation.
Reject table reads when a writable buffer or storage image overlaps them.
Cover the overlapping-storage fault and isolated second-table behavior.
2026-10-14 16:43:57 +02:00
Celegans12 d9e47d1e98 feat(agc): implement image and sampler tables indexed at runtime offsets
Materialize runtime-indexed image and sampler records into descriptor
tables while keeping descriptor selection in the shader. Report invalid
active entries through the existing deferred fault buffer.

Bind fragment tables in the fragment set when pipeline libraries split it,
and reserve a physical descriptor for empty tables. Reject unsupported
sampler, border, cube and anisotropic pairings per entry. Keep one column
per heap access shape, one T# shared by several image operations included
(milescoviello's #5550 case), and narrow it to the union of its keys'
domains when every key has one (SleglJan's key-domain changes). Plan
columns read at (key << n) & mask over their whole domain (tibzejoker's
fix). Read records in runs through SleglJan's bulk reader, and reject
entries whose surface has no mapped byte, as Tamalero proposed. Store
table columns in disk plans; update the runtime ABI and disk format. Bound
table-sized entries in the resource cache (65,536 table elements) and the
dispatch cache (256 MiB of captured words), evicting LRU.
2026-10-14 16:43:57 +02:00
Adrià f0854887d6 Merge pull request #5686 from ps54all/feat/libscecescs-jisx0208
feat(libSceCesCs): convert two-byte EUC-JP characters through the CP932 table
2026-10-14 16:41:56 +02:00
Adrià ef4d09d22a Merge pull request #5697 from gjonn/hdr-output
feat(videoout): present PQ display buffers through an HDR10 swapchain
2026-10-14 16:27:11 +02:00
Adrià 8dfaafe627 Merge pull request #5647 from pushkarreddyy/feat/ajm-resample-ratio-ramp
feat(libSceAjm): support ratio ramp in sceAjmBatchJobSetResampleParametersEx
2026-10-14 16:26:20 +02:00
Adrià 5adefa6f89 Merge pull request #5643 from Amirtheshwaran/feat/libkernel-mincore
feat(libkernel): implement mincore
2026-10-14 16:25:54 +02:00
Adrià 4469ea22f6 Merge pull request #5422 from mariusyo07/feat/ult-mutex-pool-destroy
feat(libSceUlt): implement sceUltMutexDestroy and sceUltWaitingQueueResourcePoolDestroy
2026-10-14 16:25:27 +02:00
Adrià 8b2d940434 Merge pull request #5798 from jacob6769/feat/opus-celt-dec
feat(libSceOpusCeltDec): decode CELT packets with the libSceOpusDec decoder
2026-10-14 16:15:49 +02:00
ps54allandClaude Sonnet 5.5 db69769f42 feat(libSceCesCs): convert two-byte EUC-JP characters through the CP932 table
The EUC-JP profile threw on every two-byte character. It now maps the rows
0xA1-0xFE through a 94x94 table taken from Microsoft code page 932 (JIS X 0208
plus NEC row 13 and the NEC-selected IBM rows), and encodes a code point to its
lowest cell. Unassigned cells answer UNASSIGNED_CODE, a bad trail byte
INVALID_ENCODE, and a cut pair SRC_BUFFER_END. Three-byte JIS X 0212 characters
still throw.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 16:10:41 +02:00
Adrià 69e7138acc Merge pull request #5808 from Ondra97/codex/feat-configurable-trace-capacity
feat(agc): configure trace event buffers
2026-10-14 16:10:27 +02:00
Adrià 8488fa7274 Merge pull request #5749 from OleksandrS23/feat/macos-file-event
feat(libkernel): EVFILT_VNODE on macOS through the host kqueue
2026-10-14 16:08:18 +02:00
Adrià eb59c7642e Merge pull request #5666 from Kurenaiiiii/feat/libkernel-sigsuspend
feat(libkernel): implement sigsuspend on the pending-signal set
2026-10-14 16:04:55 +02:00
Adrià bb7e47a889 Merge pull request #5634 from klosixgaming-arch/feat/json2-pair-iterator
feat(libSceJson2): implement Object::Pair, Array::iterator copies and notifyError
2026-10-14 16:04:09 +02:00
Adrià 1e8252dc0d Merge pull request #5515 from ps54all/feat/libscecescs-eucjp
feat(libSceCesCs): convert EUC-JP (CP51932) strings through a profile context
2026-10-14 16:03:36 +02:00
simonbronkandClaude Opus 5.5 b6cde56981 feat(agc): rasterize sample locations that vary between pixels through a 2x2 grid
PA_SC_AA_SAMPLE_LOCS_PIXEL_* patterns that differ between the four pixels
of the guest's 2x2 grid threw. Pass them through VK_EXT_sample_locations
as a 2x2 sample location grid on devices whose maxSampleLocationGridSize
for the sample count allows it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 15:53:28 +02:00
Adrià 28b6f19879 Merge pull request #5779 from mrfelek/pr/depth-storage-slice-view-v3
feat(agc): storage image access to depth planes through a 2D array view from a later slice
2026-10-14 15:51:11 +02:00
Adrià f3a826ba5c Merge pull request #5673 from ps54all/feat/agc-ps-iter-sample
feat(agc): run the pixel program per sample for PS_ITER_SAMPLE
2026-10-14 15:48:57 +02:00
KernelPanicNTandClaude Opus 5.5 1536689622 feat(libSceSystemGesture): implement sceSystemGestureGetTouchRecognizerInformation
sceSystemGestureCreateTouchRecognizer now records the gesture type and
rectangle in the title-owned recognizer buffer, and
sceSystemGestureUpdateTouchRecognizerRectangle replaces the stored
rectangle. sceSystemGestureGetTouchRecognizerInformation reports them
back with updated_time 0, since no recognizer is ever updated with
input. Recognizers that were not created by
sceSystemGestureCreateTouchRecognizer, or that have no rectangle, throw
because the console's result for them is unknown.

The guest test now passes full-size recognizer and rectangle structures
instead of an int.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 13:47:24 +00:00
Adrià f9cc924fe6 Merge pull request #5180 from semirkabir/feat/shader-mode-rounding-tracking
feat(shader): track MODE rounding changes through the control flow graph
2026-10-14 15:47:15 +02:00
Adrià 990c554af3 Merge pull request #5771 from simonbronk/feat/http2-websocket-ping-timeout
feat(libSceHttp2): export sceHttp2WebSocketSetPingTimeout
2026-10-14 15:43:12 +02:00
p3nicillinandClaude Opus 5.5 a08310bdc4 feat(libSceAudioOut): open HDMI bitstream ports with sceAudioOutExOpen
Surround Sound Studio (PPSA99051) opens an Ex port for IEC 61937 bursts
when a clip is played. Follow the disassembly and console log in
sainsaji/PS5-Audio-Passthrough-Research: ExOpen refuses modes outside
mask 0x61F with 0x80260015 and opens an S16 stereo port of 256 frames at
48 kHz or 1024 frames at 192 kHz; ExConfigureOutput refuses a nonzero
first argument with 0x80268009 and returns 0 for the documented modes
and targets; ExClose returns 0. The host has no HDMI bitstream output,
so an Ex port has no device and drops its bursts at its own rate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 14:28:48 +01:00
62eff52c45 feat(agc): sample depth plane arrays from a later base slice
A T# reading a depth surface's planes as a 2D array whose BASE_ARRAY is past slice 0 views the plane
copy from that slice (the copy holds slices 0 to LAST_ARRAY), instead of being refused. A 2D binding
of such a plane array reads its base slice through a one-slice view. Resident Evil Village
(PPSA01556: a D32 array read as R32F from slice 1) and Diablo II: Resurrected (PPSA03912: a D16 array
read as R16_UINT from slice 1) stopped on the refusal.

Rebased onto main from EagleBearerYS's adaptation to the current DepthPlaneCopy.

Co-Authored-By: EagleBearerYS <75296019+EagleBearerYS@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 02:27:10 +13:00
mrfelek ca9f4e47b1 feat(libSceUlt): implement sceUltMutexDestroy and sceUltWaitingQueueResourcePoolDestroy 2026-10-14 15:07:48 +02:00
Semir Kabir f662afe533 feat(shader): track MODE rounding changes through the control flow graph 2026-10-14 15:07:24 +02:00
Adrià 937cd6cab2 Merge pull request #5539 from JJenkx/feat/videoout-eop-flips
feat(videoout): present reserved flips from tagged GPU completion
2026-10-14 15:04:12 +02:00
Adrià 45d99dac82 Merge pull request #5563 from karimibrahim07/feat/libc-fegetenv
feat(libc): implement fegetenv
2026-10-14 14:59:26 +02:00
Adrià beb7e94048 Merge pull request #5453 from overlordxrz-source/feat/agc-device-fault
feat(agc): report device losses with VK_EXT_device_fault and dispatch checkpoints
2026-10-14 14:58:14 +02:00
Adrià 131171e772 Merge pull request #4840 from Lorkydey/feat/shader-fragment-user-data-tail
feat(shader): link raw fragment epilogs through user data
2026-10-14 14:56:34 +02:00
Gjon Gojcevic 4e27d8d753 fix(videoout): keep the output SDR on hosts without a monitor HDR report
A Vulkan surface can offer HDR10 formats while the display is not in
HDR (KDE Wayland with RADV lists them with the output's HDR disabled),
so on hosts other than Windows the probe now reports an SDR monitor and
HDR output stays off until an output-state signal exists. A probe test
checks that a window without a Windows monitor report reads as SDR with
an HDR10 surface.

The HDR10 present test now also changes the monitor's luminance while
presenting HDR10, and the presenter logs the HDR metadata it sets.

AI-assisted: yes
2026-10-14 08:55:18 -04:00
ps54allandClaude Sonnet 5.5 af7ca4af50 feat(agc): run the pixel program per sample for PS_ITER_SAMPLE
PA_SC_MODE_CNTL_1 bit 16 (PS_ITER_SAMPLE) was rejected with the other scan
control bits. On a multisampled draw it now enables Vulkan sample shading with
a minimum rate of 1.0, and the draw throws when the device lacks
sampleRateShading. On a single-sample draw the bit has no effect and is
dropped. The flag is part of the pipeline, pipeline library and draw register
keys.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 14:53:42 +02:00
Adrià 7181fe94d6 Merge pull request #5616 from JJenkx/feat/vp9-picture-info
feat(videodec2): implement VP9 picture metadata
2026-10-14 14:53:32 +02:00
Adrià 1b55ee4ab3 Merge pull request #5610 from Dripl1x/codex/feat-libkernel-fixed-anonymous-mmap
feat(libkernel): support fixed anonymous mmap
2026-10-14 14:52:53 +02:00
Adrià 24f58e534a Merge pull request #5605 from babyhuey/feat/libkernel-soc-power
feat(libkernel): export sceKernelGetSocPowerConsumption
2026-10-14 14:51:36 +02:00
Adrià 8bbed135fa Merge pull request #5592 from JJenkx/feat/videoout-buffer-labels
feat(videoout): expose buffer labels and release replaced frames
2026-10-14 14:50:50 +02:00
Adrià FranchandClaude 3faeae816b docs(debt): mark the ratio ramp semantics as assumed
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-14 14:46:30 +02:00
pushkarreddyy 4c58702fd0 feat(libSceAjm): support ratio ramp in sceAjmBatchJobSetResampleParametersEx 2026-10-14 14:46:23 +02:00
Adrià 4e0cb18d1e Merge pull request #5545 from Nixitov/feat/setpriority
feat(libkernel): implement setpriority
2026-10-14 14:46:16 +02:00
Adrià 3bbfc60bb7 Merge pull request #5448 from joelfernandes23/fix/pad-audio-rumble-20261013
feat(pad): bridge controller audio haptics to motor rumble
2026-10-14 14:43:54 +02:00