Ishmam Ahmed
78634fb0a9
feat(relinker): support --trace-imports for Linux output
...
The Linux entry stub now passes each traced import through libc.prx's
TraceImport_nid_no_patch before it calls the guest entry, and stores the
returned thunk in the import's slot. The same imports are traced as on
Windows: functions bound through a PLT slot or a GOT slot, without an
addend, and not weak. TraceImport_nid_no_patch is bound eagerly through
an added GLOB_DAT relocation, so a libc.prx without it fails at load.
Each slot's page is made writable with mprotect first, so slots inside a
PT_GNU_RELRO range can be replaced.
--trace-imports now requires libc.prx among the libraries on Linux too,
and is refused with --macos.
2026-10-19 22:56:03 +01:00
Ishmam Ahmed
0bad015e21
fix(libc): keep the Linux call trace report when two threads abort
...
A thread that lost the race to write the report passed SIGABRT on straight away, and the default action ended the process while the first thread was still writing. It now waits for the report to finish, polling with nanosleep for at most 2 seconds, before it chains. guest_call_trace_abort_race aborts from two threads at once and checks the whole report; it failed 35 times in 50 without the wait. Reported by jotitadev.
2026-10-19 22:56:02 +01:00
Ishmam Ahmed
0454726744
fix(libc): write the Linux call trace report with signal-safe calls only
...
The SIGABRT handler used stdio and dladdr, so an abort raised while another thread held the stderr lock or the loader lock hung instead of ending. The report is now formatted into a stack buffer and written with write(2). Callers are named from a module list taken with dl_iterate_phdr when imports are traced, and import counts are read without a lock from a fixed record array. The abort test now holds the stderr lock in another thread, which timed out before this change.
2026-10-19 22:55:08 +01:00
Ishmam Ahmed
d128ce7bb8
feat(libc): record traced system library calls on Linux
...
Build the call tracer for Linux as well as Windows. The thunk area is a
memfd mapped twice, writable and executable, and threads are named by
gettid. Linux has no crash report, so the first traced import installs a
SIGABRT handler that prints the last calls and the most called imports,
then passes the signal on to the previous handler.
guest_call_trace and guest_call_trace_abort now run on Linux too.
2026-10-19 22:55:07 +01:00
Adrià
a01b3287c6
Merge pull request #7432 from MarcZX10/codex/7017-failed-collect-unwatch
...
fix(agc): save pending results when a fresh write collect fails
2026-10-19 23:43:48 +02:00
Dean
3756c72dc6
Merge pull request #6479 from EagleBearerYS/perf/agc-host-import-blocks
...
perf(agc): take the host import budget from the device's memory budget
2026-10-20 09:52:09 +13:00
Dean
524259954a
Merge pull request #6457 from EagleBearerYS/perf/agc-host-import-aligned-blocks
...
perf(agc): import adjacent host ranges as aligned blocks and stop re-trying budget refusals
2026-10-20 09:51:55 +13:00
Dean
6d89a7bd8a
Merge pull request #7036 from thuanquang/fix/f64-rounding-denormal-flush
...
fix(shader): flush f64 floor, ceil, fract and frexp denormal inputs
2026-10-20 09:22:37 +13:00
Dean
6b981a212c
Merge pull request #7675 from valenciana-nc/fix/recvmsg-guest-validation
...
fix(libkernel): fail recvmsg with EFAULT on guest memory it cannot read or write
2026-10-20 09:21:54 +13:00
Adrià
12ee57a39b
Merge pull request #7396 from ErenYeager1836/fix/playgo-dialog-get-result-not-finished
...
fix(libScePlayGoDialog): return error for uncompleted dialog in scePlayGoDialogGetResult
2026-10-19 22:18:46 +02:00
Adrià
602d8e66b1
Merge pull request #7429 from ps54all/feat/shader-ds-ordered-count-swap
...
feat(shader): model ds_ordered_count swap
2026-10-19 22:17:42 +02:00
Adrià
cde1ffdedd
Merge pull request #7254 from gjonn/feat/agc-layered-2d-array-color-views
...
feat(agc): render layered draws into 2D array color views
2026-10-19 22:05:15 +02:00
Adrià
7fe0790e59
Merge pull request #7388 from pushkarreddyy/feat/recompiler-waterfall-image-table
...
feat(recompiler): support waterfall select conditions and key bounds in pointer image tables
2026-10-19 22:04:09 +02:00
Dean
f1861e4141
Merge pull request #7855 from KernelPanicNT/fix/pngdec-create-max-width
...
fix(libScePngDec): reject a maximum image width above 1000000
2026-10-20 08:52:31 +13:00
Adrià
dfd22c1887
Merge pull request #7428 from mrfelek/fix/ngs2-setup-clears-callback
...
fix(libSceNgs2): clear the voice callback on sampler and mixer setup
2026-10-19 21:52:05 +02:00
Dean
aea539e17a
Merge pull request #7854 from KernelPanicNT/fix/userservice-initialize-priority
...
fix(libSceUserService): check the thread priority on initialization
2026-10-20 08:51:52 +13:00
Adrià
f745930f03
Merge pull request #7413 from thuanquang/fix/table-call-hoisted-descriptor
...
fix(shader): link a table call whose descriptor load sits before its loop
2026-10-19 21:50:42 +02:00
Adrià
8075b6af19
Merge pull request #7398 from ErenYeager1836/fix/login-dialog-close-status
...
fix(libSceLoginDialog): transition to finished on dialog close
2026-10-19 21:38:18 +02:00
Adrià
d10ef4d2c6
Merge pull request #7381 from thuanquang/fix/volume-array-sample
...
fix(shader): sample a 3D T# through DIM 2D_ARRAY as a volume
2026-10-19 21:38:12 +02:00
Adrià
f39852fd41
Merge pull request #7397 from ErenYeager1836/fix/npauth-authorized-app-dialog-close-status
...
fix(libSceNpAuthAuthorizedAppDialog): transition to finished on dialog close
2026-10-19 21:36:12 +02:00
Adrià
7866e7d97c
Merge pull request #7394 from ErenYeager1836/feat/vr-setup-dialog-get-status
...
feat(libSceVrSetupDialog): export sceVrSetupDialogGetStatus
2026-10-19 21:33:59 +02:00
Adrià
67e5c8a48f
Merge pull request #7403 from milescoviello/fix/fcntl-host-socket
...
fix(libkernel): handle fcntl and FIONREAD on a host socket descriptor
2026-10-19 21:30:50 +02:00
Adrià
d7e62d8e25
Merge pull request #7258 from Pipodi/fix/sampled-array-viewed-slices
...
fix(agc): build sampled array views from the slices they read
2026-10-19 21:16:23 +02:00
Adrià
c0adf025b8
Merge pull request #6815 from JJenkx/fix/msaa-load-on-plane
...
fix(shader): read 2D textures through MSAA image loads
2026-10-19 21:07:00 +02:00
Adrià
d07148f69f
Merge pull request #7321 from jagrat04/feat/libSceVoiceQoS-firmware-exports
...
feat(libSceVoiceQoS): export missing firmware functions from database
2026-10-19 20:41:11 +02:00
Adrià
965dc2d78c
Merge pull request #7298 from eliyarson/feat/videoout-telemetry
...
feat(videoout): write pad and present telemetry to APS5_VIDEOOUT_TELEMETRY_DIR
2026-10-19 20:40:04 +02:00
Dean
1e774a3b22
Merge pull request #7872 from ErenYeager1836/feat/libc-throw-bad-optional-access
...
feat(libc): implement std::_Throw_bad_optional_access
2026-10-20 07:21:55 +13:00
Adrià
544f29106d
Merge pull request #7250 from milescoviello/feat/msaa-dcc-refill
...
feat(agc): take a full DCC fill of a resident multisampled target as its fast clear
2026-10-19 20:17:24 +02:00
Adrià
f52509acc7
Merge pull request #7875 from xXPBSXx/docs-agc-cmask-clear-amd-gpl-off
...
docs(debt): record the CMASK clear pass fault on AMD without pipeline libraries
2026-10-19 19:59:13 +02:00
Adrià
38de0a470b
Merge pull request #7129 from AlexOfTheForest/feat/kevent-ev-clear
...
feat(libkernel): support EV_CLEAR on sockets and pipes in kevent on Linux
2026-10-19 19:56:35 +02:00
Adrià
2232629a96
Merge pull request #7074 from CrimsonMac/fix/f16-fma-default-nan
...
fix(shader): give f16 fma invalid operations the default NaN
2026-10-19 19:56:30 +02:00
Adrià
7d89b1f4fb
Merge pull request #7865 from xXPBSXx/docs/debt-wait-label-slot
...
docs(agc): record the queue 0x20 label wait that holds another slot's address
2026-10-19 19:55:35 +02:00
Adrià
8e0fde7d59
Merge pull request #7091 from Bl4ckk01/feat/ces-sjis-cp1250
...
feat(libSceCesCs): implement Shift-JIS CP932 and CP1250 encoding conversions
2026-10-19 19:49:48 +02:00
Adrià
76b836d365
Merge pull request #7087 from Aryansh1520/new-topic
...
feat(libSceRudp): implement sceRudpNetReceived and sceRudpEnableInternalIOThread2
2026-10-19 19:49:42 +02:00
Adrià
8444508241
Merge pull request #7815 from parl0v/docs/fusion-oc-lds-source
...
docs(debt): cite radeonsi for the front half's OC_LDS_EN in shader fusion
2026-10-19 19:44:00 +02:00
Adrià
48790e0233
Merge pull request #7039 from nabil88/fix/windows-libkernel-and-tests
...
feat(libkernel): implement getdtablesize and fix Windows host-tree removal
2026-10-19 19:36:18 +02:00
Adrià
a77e40f93f
Merge pull request #7070 from milescoviello/feat/kern-proc-vmmap
...
feat(libkernel): report the guest address-space map through kern.proc.vmmap
2026-10-19 19:36:11 +02:00
Adrià
68447804da
Merge pull request #6975 from T3cm0/bionic/libc-addstd
...
feat(libc): implement ios_base::_Addstd
2026-10-19 19:35:57 +02:00
Adrià
e6a3cf0079
Merge pull request #7808 from parl0v/docs/host-import-budget-default
...
docs(env): describe the default host import budget as HostImportBudget computes it
2026-10-19 19:35:47 +02:00
Dean Galvin
cda9264590
Merge main into pr-6479 via the rebased #6457
...
# Conflicts:
# core/libs/prx/libSceAgcDriver/Graphics/src/GuestBufferMemory.cpp
2026-10-20 06:31:11 +13:00
Dean Galvin
e42de06845
Merge main into pr-6457
...
# Conflicts:
# core/libs/prx/libSceAgcDriver/Graphics/src/GuestBufferMemory.cpp
2026-10-20 06:30:38 +13:00
Dean
738d884102
Merge pull request #7878 from xxLnolan/fix/libc-paf-mspace-memalign
...
fix(libc): implement PAF mspace memalign
2026-10-20 05:54:04 +13:00
Dean
c66a207ddd
Merge pull request #7842 from ionut27001/fix/libkernel-umtx-op1-eopnotsupp
...
fix(libkernel): fail _umtx_op operation 1 with EOPNOTSUPP as measured on a PS5
2026-10-20 05:53:50 +13:00
Dean
240255fcf8
Merge pull request #7924 from realshinmalphur/feat/net-process-time
...
feat(net): implement process-relative system time
2026-10-20 05:53:14 +13:00
Dean
a4c04c75d6
Merge pull request #7921 from ntamas94/fix/sce-net-inet-pton-whitespace
...
fix(libSceNet): end IPv4 sceNetInetPton text at whitespace as the PS4 does
2026-10-20 05:52:50 +13:00
Dean
a39411c67a
Merge pull request #7906 from Rajkamalcode/fix/libc-bessel-zero
...
fix(libc): return -inf from y0f, y1f and ynf at zero
2026-10-20 05:52:35 +13:00
Dean
dbac9fa15b
Merge pull request #7909 from parl0v/feat/pad-accessibility-controller-state
...
feat(libScePad): implement scePadGetAccessibilityControllerState (zBsgF0q8DIM)
2026-10-20 05:24:48 +13:00
Dean
78f7af3fc8
Merge pull request #7908 from parl0v/fix/pad-n3kSX62fgNo-after-open
...
fix(libScePad): return 0 from n3kSX62fgNo after scePadInit, with a pad open or not
2026-10-20 05:22:46 +13:00
Adrià
5638146d6a
Merge pull request #7526 from Amoenus/codex/docs-trace-summary-seconds-main3e3e
...
docs(dev): correct periodic trace summary interval units
2026-10-19 18:18:10 +02:00
Adrià
0fbfd91e5e
Merge pull request #6985 from Lorkydey/feat/libc-floating-point-controls
...
feat(libc): implement floating-point rounding and exception flags
2026-10-19 17:54:33 +02:00