ParantezTech
160521fd78
[GPU] Clear image buffer owners with format-correct fill values
2026-10-13 04:54:37 +03:00
ParantezTech
8164636d99
[GPU] Decode repeated FP16 and uint buffer fill words
2026-10-13 04:54:36 +03:00
ParantezTech
c61c1602aa
[Presenter] Report bound mip statistics by default and measure on the GPU on request
2026-10-13 03:46:56 +03:00
ParantezTech
d0ffcb24d2
[Presenter] Write the bound mip statistics in stream order on the render thread
2026-10-13 03:46:56 +03:00
ParantezTech
880270b344
[GPU] Write the interpreter's LOD statistics through the shared report writer
2026-10-13 03:46:56 +03:00
ParantezTech
d5332f01ca
[GPU] Write the mip statistics report with its ready marker
2026-10-13 03:46:56 +03:00
ParantezTech
6631a665f8
[Presenter] Merge overlapping concurrent resolve ownership answers
2026-10-13 03:46:56 +03:00
ParantezTech
002007c323
[GPU] Fill metadata-shaped bounded fills on the host
2026-10-13 03:46:56 +03:00
ParantezTech
b26c59460d
[Diagnostics] Report the GPU writers of synchronized DCC metadata
2026-10-13 03:46:56 +03:00
ParantezTech
d4276d89f8
[Profile] Count DCC metadata synchronizations and their outcome
2026-10-13 03:46:56 +03:00
ParantezTech
e5c2755789
[Profile] Attribute render thread GPU waits to their call sites
2026-10-13 03:46:56 +03:00
ParantezTech
22ec74e085
[Profile] Classify what changed in stale resource cache entries
2026-10-13 03:46:56 +03:00
ParantezTech
7b730a51fc
[Profile] Count resource cache refusal reasons
2026-10-13 03:46:56 +03:00
ParantezTech
416464db1e
[AGC] Emit register packets with one write
2026-10-13 03:46:56 +03:00
ParantezTech
cd51a9ea2e
[AGC] Emit event and flip packets with one write
2026-10-13 03:46:56 +03:00
ParantezTech
8f8737e2d1
[AGC] Emit draw packets with one write
2026-10-13 03:46:56 +03:00
ParantezTech
3fba66473b
[AGC] Emit indirect buffer packets with one write
2026-10-13 03:46:56 +03:00
ParantezTech
e2ad2084f8
[AGC] Emit dispatch, memory and marker packets with one write
2026-10-13 03:46:56 +03:00
ParantezTech
9b552ffb72
[AGC] Emit packets with one write and read the buffer state at once
2026-10-13 03:46:56 +03:00
ParantezTech
8c24a40bfa
[HLE] Skip the region lock for writes to CPU-dirty pages
2026-10-13 03:46:56 +03:00
ParantezTech
643a565a22
[HLE] Answer GPU span coverage from a snapshot
2026-10-13 03:46:56 +03:00
ParantezTech
8f7fa3933f
[HLE] Write single-view guest memory without the region lock
2026-10-13 03:46:56 +03:00
ParantezTech
48258b1e50
[Core] Map guest thread priorities one band lower
2026-10-13 03:46:56 +03:00
ParantezTech
ca076237c6
[GPU] Memoize texture lookups of DCC images
2026-10-13 03:46:56 +03:00
ParantezTech
dc73931dd6
[GPU] Split the post-lookup work out of image lookups
2026-10-13 03:46:56 +03:00
ParantezTech
1fbecd3233
[GPU] Skip native binds that repeat the bound state
2026-10-13 03:46:55 +03:00
ParantezTech
ae97ac9525
[GPU] Advance a binding epoch when helper passes bind their own state
2026-10-13 03:46:55 +03:00
ParantezTech
b179883b5c
[ShaderCompiler] Start pixel append programs without helper lanes
2026-10-13 03:46:55 +03:00
ParantezTech
32c9a37b0e
[GPU] Report LOD statistics measured on the GPU
2026-10-13 03:46:55 +03:00
ParantezTech
5d6b59eeb8
[GPU] Pack LOD statistics reports from counter words
2026-10-13 03:46:55 +03:00
ParantezTech
8d0af3d8f7
[ShaderCompiler] Count the finest mip each pixel sample reaches
2026-10-13 03:46:55 +03:00
ParantezTech
a1b44452fa
[GPU] Skip the upload walk when no CPU-dirty page is in range
2026-10-13 03:46:55 +03:00
ParantezTech
d2090f47fb
[GPU] Stop reading ahead windows whose copies keep going stale
2026-10-13 03:46:55 +03:00
ParantezTech
b5c15a7426
[GPU] Publish read-back pieces that no later write covers
2026-10-13 03:46:55 +03:00
ParantezTech
fd2afcd8c8
[GPU] Track GPU write ticks per buffer range
2026-10-13 03:46:55 +03:00
ParantezTech
6d69163297
[GPU] Request guest memory barriers through the recording buffer
2026-10-13 03:46:55 +03:00
ParantezTech
c622b64ace
[GPU] Merge consecutive memory barrier requests in a recording buffer
2026-10-13 03:46:55 +03:00
ParantezTech
0de84e34df
[Diagnostics] Count GPU barriers and rendering scopes
2026-10-13 03:46:55 +03:00
ParantezTech
84c830f7ce
[ShaderCompiler] Skip EXEC selects for vector writes no lane observes
2026-10-13 03:46:55 +03:00
ParantezTech
d24f6c6a85
[GPU] Compile wave64 compute for 32-lane subgroups when the host lacks wave64
2026-10-13 03:46:55 +03:00
ParantezTech
08891b1fef
[ShaderCompiler] Run lane-local wave64 programs as independent half waves
2026-10-13 03:46:55 +03:00
ParantezTech
7a6e3d0308
[ShaderCompiler] Run wave64 compute as paired lanes on 32-lane subgroups
2026-10-13 03:46:55 +03:00
ParantezTech
4087ab84f8
[ShaderCompiler] Let compile requests ask for 32-lane compute subgroups
2026-10-13 03:46:55 +03:00
ParantezTech
5febf063f4
[ShaderCompiler] Declare the SubgroupId built-in
2026-10-13 03:46:55 +03:00
ParantezTech
c02f2163f2
[ShaderCompiler] Find vector writes that no later instruction observes
2026-10-13 03:46:55 +03:00
ParantezTech
8a0d713665
[ShaderCompiler] Prove wave64 programs whose lanes never read each other
2026-10-13 03:46:55 +03:00
Astellou
3f01c0e91c
[GPU] Record a frame's draws before its boundary returns to the guest
...
With the command stream on its own thread, a frame boundary only posted its
flush, so the guest resumed while up to 64 items of the frame were still
queued for the render thread. The guest then rewrote per-draw memory
(descriptor tables, rings) that those draws read when recorded, which showed
as black frames and flicker. The boundary now waits for the render thread to
run everything queued before it.
2026-10-13 03:46:55 +03:00
Astellou
593cec957d
[GPU] Run the command stream on its own thread and speed up draw execution
...
ASTRO BOT crowd scene: ~25 FPS -> ~55-58 FPS.
- The PM4 command stream is interpreted on its own thread. Draws, dispatches,
barriers, end-of-pipe writes and the interpreter's stores are handed to the
render thread in stream order through a short queue (64 items); callbacks
that return a result wait for the work before them.
- Graphics program resolution runs on a worker thread ahead of the draws, from
copy-on-write register bank snapshots, and is validated against the GPU
ownership state before use.
- The resource materialization cache rebases buffer base addresses instead of
missing on every moved descriptor.
- DCC metadata fills that cannot be absorbed run on the host, so binding the
surface no longer waits for a GPU readback.
- Cheaper per-draw work: cached pipeline lookups no longer wait on program
preparation, redundant dynamic state is skipped, image bindings and target
requests are memoized, fewer allocations.
- Guest thread stack/TLS slots are chosen and mapped under one lock, so two
threads can no longer share a stack.
- Wave lowering split into native wave32, native wave64 and emulated wave64.
2026-10-13 03:46:55 +03:00
ParantezTech
3f84f59065
Revert "Ghost of Yōtei and Tsushima in game: rendering, GPU/CPU memory coherence, tessellation"
...
This reverts commit c7bbb09311 .
2026-10-13 03:38:40 +03:00
Berk
15768908a1
Revert "Fix/des render thread regression ( #1086 )" ( #1091 )
...
This reverts commit 28c922c7a5 .
2026-10-13 03:33:15 +03:00