ebosido444-ai
c48e01977d
feat(shader): implement s_swappc_b64 fetch-shader call
...
Decodes SOP1 0x21 s_swappc_b64 (link pair = pc + 4) and resolves its call/return pairing through the existing s_setpc_b64 path: static call regions in GraphBuilder and the vertex-entry fetch-shader call inlined from the parsed fetch-shader plan. s_call_b64 (SOPK 0x16) and s_rfe_b64 (SOP1 0x22) throw at decode. Unmodeled cases throw; see docs/dev/TechnicalDebt.md.
2026-10-08 20:05:24 +02:00
boykopovar
239412351e
Merge pull request #639 from boykopovar/feat/no-ingame-shaders-recomp
...
perf(agc): baseline shader recompilation on registration
In main, baseline recompilation depends on the resource configuration and runs on the first use of each corresponding variant.
This branch prepares IR, the static interface, baseline SPIR-V, and available ABI variants during shader registration. The compiled artifact is separate from per-draw and per-dispatch data.
Before the first execution with a new resource configuration, the runtime reads descriptors, validates compatibility, prepares the binding plan, specializes existing SPIR-V by substituting constants and removing unused branches and computations, materializes invocation data, and creates the Vulkan pipeline. These results are cached.
Variants that depend on linked graphics stages are prepared when the corresponding ABI is resolved. Unregistered compute shaders undergo baseline preparation on their first dispatch, emit an error log, and cache the result.
Subsequent executions reuse prepared artifacts, specializations, and pipelines while updating invocation data and resources as needed.
2026-10-08 20:45:54 +03:00
Adrià Franch
beaaa4de18
test(agc): run agc_driver_flat_store alone
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-08 19:28:29 +02:00
Adrià
17350cf5fd
Merge pull request #895 from Kikoarl/feat/s-call-b64
...
feat(shader): implement S_CALL_B64
2026-10-08 19:24:59 +02:00
boykopovar
7ac08cbac4
fix(shader): declare required invocation inputs and correct derivative test dimensions
2026-10-08 20:24:58 +03:00
boykopovar
8b15d88839
fix(shader): use guest wave lane for ADD_TID on narrow subgroups
2026-10-08 19:48:08 +03:00
boykopovar
199eeb1805
fix(shader): preserve structured exits during SPIR-V specialization
2026-10-08 19:19:50 +03:00
boykopovar
2767da6a8a
fix(tests): check Vulkan availability before shader registration
2026-10-08 19:09:13 +03:00
boykopovar
2da24e8a62
fix(tests): keep bindless image selection within one host subgroup
2026-10-08 19:04:45 +03:00
boykopovar
6741e90a1c
fix(shader): restore prepared image compatibility and update regression fixtures
2026-10-08 18:32:12 +03:00
boykopovar
0fa7114e93
fix(tests): correct raw buffer bounds in DCC many-buffer and interlock tests
2026-10-08 18:24:15 +03:00
boykopovar
d0a62b7ba0
fix(tests): correct raw buffer bounds modes in image tests
2026-10-08 18:21:50 +03:00
boykopovar
381d12b3b4
fix(tests): correct buffer bounds modes in GDS LDS and scalar tests
2026-10-08 18:20:08 +03:00
boykopovar
bae0aed3bf
fix(driver): adapt shader preparation to updated main apis
2026-10-08 18:12:47 +03:00
boykopovar
eb68ad3b02
fix(shader): preserve main buffer alignment and image formats in prepared shaders
2026-10-08 17:51:05 +03:00
Adrià
eb2818f505
Merge pull request #1476 from awake-devel/fix/timedwait-nested-waiter
...
fix(libkernel): give each nested TimedWait its own waiter on Windows
2026-10-08 16:48:48 +02:00
boykopovar
082f371758
fix(shader): correct emulated color comparison specialization
2026-10-08 17:40:12 +03:00
boykopovar
4b5a395219
fix(shader): correct msaa sample addressing and prepared test failure cleanup
2026-10-08 17:40:10 +03:00
boykopovar
6a4c5b5ded
fix(shader): support non-array image views and packed unorm runtime modes
2026-10-08 17:38:11 +03:00
boykopovar
e5cd1c6079
test(font): avoid deleting an open system font on windows
2026-10-08 17:37:40 +03:00
boykopovar
1b3da3a740
test(agc): update graphics binding and bda range checks
2026-10-08 17:37:40 +03:00
boykopovar
c3e6727163
fix(agc): prune expired rectangle preparation links
2026-10-08 17:37:39 +03:00
boykopovar
6acf4ee0ee
test(agc): isolate shader linking and interpolant preparation checks
2026-10-08 17:37:38 +03:00
boykopovar
1f8a7e0b94
test(shader): align specialization checks with runtime abi
2026-10-08 17:37:37 +03:00
boykopovar
19ede29259
test(agc): fix mrt export index and vertex fetch abi checks
2026-10-08 17:37:36 +03:00
boykopovar
8c4e0b1524
fix(shader): propagate binding plan initialization failures outside call_once
2026-10-08 17:37:35 +03:00
boykopovar
6ac7fbc5a4
fix(agc): stop profile writer before DLL teardown
2026-10-08 17:37:34 +03:00
boykopovar
416e284a31
fix(tests): align prepared shader checks with raw compute caching
2026-10-08 17:37:33 +03:00
boykopovar
92fcdbb1f7
fix(tests): correct buffer OOB modes in image and BVH tests
2026-10-08 17:37:33 +03:00
boykopovar
fa2df2e2ff
fix(tests): correct buffer descriptors in memory and wave execution tests
2026-10-08 17:37:32 +03:00
boykopovar
49f36309bf
fix(tests): correct buffer OOB modes in half, FMA and packed arithmetic tests
2026-10-08 17:37:31 +03:00
boykopovar
9e7aad07c8
fix(tests): correct buffer OOB modes in F32, F64 and division tests
2026-10-08 17:37:30 +03:00
boykopovar
972122bcef
fix(tests): correct buffer OOB modes in VOP and SDWA tests
2026-10-08 17:37:29 +03:00
boykopovar
d2c6546124
fix(tests): correct buffer OOB modes in DPP, DS, LDS and scalar tests
2026-10-08 17:37:28 +03:00
boykopovar
0cd9650100
fix(shader): initialize null pixel shader registration state
2026-10-08 17:37:27 +03:00
boykopovar
2d93308780
fix(shader): preserve main behavior in cached specialization
2026-10-08 17:37:25 +03:00
Adrià
29e533aca0
Merge pull request #1469 from arvindfroi/refactor/coredump-stopinfo-gpu-name
...
refactor(libkernel): name the Jrs7UUkGOFo Coredump stub by its NID
2026-10-08 16:37:04 +02:00
boykopovar
7fc7372274
perf(shader): cache registered state + reduce preparation transaction overhead
2026-10-08 17:37:03 +03:00
Adrià
700c0babc6
Merge pull request #1468 from arvindfroi/refactor/ajm-wvorbis-names
...
refactor(libSceAjm.native): name the WVorbis stubs by their NIDs
2026-10-08 16:36:34 +02:00
boykopovar
2441bd265d
perf(log): write frame timings async to a buffered file
2026-10-08 17:29:49 +03:00
boykopovar
2ec144d4d3
perf(shader): avoid redundant resource validation + eliminate dead spirv computations
2026-10-08 17:29:48 +03:00
boykopovar
702bc73954
perf(shader): precompute binding metadata and populate only live descriptors
2026-10-08 17:29:45 +03:00
boykopovar
26dab1fb43
perf(shader): cache binding plans and deduplicate spirv materialization
2026-10-08 17:29:22 +03:00
boykopovar
aad742169b
perf(shader): reuse prepared state and build lookup keys once
2026-10-08 17:29:20 +03:00
boykopovar
ed0b89e042
fix(shader): relocate prepared push constants across graphics stages
2026-10-08 17:29:19 +03:00
boykopovar
746bfa2a20
fix(shader): materialize prepared shaders without spirv-tools
2026-10-08 17:29:18 +03:00
boykopovar
05fa426112
perf(shader): eliminate prepared-path overhead in data, descriptors, dispatch, bda
2026-10-08 17:29:17 +03:00
boykopovar
7431e5a6e1
perf(shader): restore prepared vertex inputs + harden buffer specialization
2026-10-08 17:28:55 +03:00
Adrià
9f4bd71cb6
Merge pull request #1475 from awake-devel/fix/aio-windows-positioned-io
...
fix(libkernel): use positioned transfers for Windows AIO requests
2026-10-08 16:28:43 +02:00
boykopovar
7f56e04157
fix(shader): validate and serialize pipeline specialization constants (wip)
2026-10-08 17:28:35 +03:00