sharpemu/tests/SharpEmu.Libs.Tests/VideoOut
Berk 0163750e7e
Page fixes (#1023)
* [DeS] Fixes for page faults and stack bounds issues in the emulator and audio fixes

* [ShaderPrewarm] Hold the game until the prewarm finishes and resume interrupted runs

The prewarm compiled thousands of compute pipelines on background threads
while the now faster boot ran beside it, so logos, Bink movies and the first
scenes raced the compile and dropped frames.

- Hold the guest at its first splash hide, GPU submission or CPU flip until
  the prewarm is decided and done; the render thread keeps presenting the
  splash. SHARPEMU_SHADER_PREWARM_WAIT=0 opts out.
- Stamp only the shader translators, the compiler type and the driver, so a
  Libs-only build no longer triggers a full prewarm.
- Record finished pipelines in shader-prewarm.progress so an interrupted
  prewarm resumes with the remaining ones.

* [AudioOut2] Block a blocking push only until a queue slot frees

A blocking sceAudioOut2ContextPush waited only when the host stream hit its
128 KiB cap, so a title rendering faster than real time kept about 680 ms
queued and every sound played that far behind (GTA V: queue=2 context,
queued_ms avg=678). The push now waits until the device holds the cushion
plus QueueDepth-1 grains, the level GetQueueLevel already reports as full;
the host cap stays as the limit for non-blocking bursts. GTA V now holds
about 41 ms with no underruns.

* [GPU] Run bounded modulo copies of plain words on the host

Demon's Souls copies its per-frame constant and descriptor tables with a
compute kernel (dst[i] = src[i % N] for i < count). Run on the GPU, the
destinations stay GPU-dirty, and every draw whose resource tables read them
waits for a readback: about 19% of the render thread in the title scene,
for values that never changed.

The kernel is now recognized by its instruction sequence. When both
descriptors are plain 32-bit words of the same format and neither range is
GPU-dirty or GPU image memory, the copy is written to guest memory through
the host DMA path and the dispatch is skipped; anything else still runs on
the GPU. SHARPEMU_HOST_BOUNDED_COPY=0 turns it off.

Title scene with profiling: 7.4-8.6 -> 11.8-15.9 fps.

* [Diagnostics] Summarize synchronized table reads and trace several writer addresses

SHARPEMU_TRACE_GPU_READS=1 now also reports, every five seconds, the guest
words resource planning read through a GPU synchronization: read count, how
often the value changed, and the first and last value. SHARPEMU_TRACE_WRITER_ADDRESS
accepts a comma-separated list.
2026-10-04 19:07:37 +03:00
..
BufferUploadProfileTests.cs Astrobot / Demon's soul performance improvement (#955) 2026-09-30 18:14:21 +03:00
GuestIndexBufferLeaseTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
HostMovieTextureBindingTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
HostVideoOptionsTests.cs Sdl backend (#670) 2026-07-28 03:33:26 +03:00
MetalRenderTargetFormatTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
PerformanceOverlayTests.cs [GUI] revision of default settings (#1009) 2026-10-02 02:51:50 +03:00
PngSplashLoaderTests.cs Fix PNG chunk CRC validation (#241) 2026-07-16 00:46:43 +03:00
PresenterDispatchThreadLimitTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
PresenterImageBindingTests.cs Perf computed shaders (#1013) 2026-10-03 04:49:43 +03:00
PresenterStartupTests.cs Page fixes (#1023) 2026-10-04 19:07:37 +03:00
PresenterUnderTest.cs Perf computed shaders (#1013) 2026-10-03 04:49:43 +03:00
RenderHostDeviceTests.Interpolation.cs Fix/gen5 shader resource handling (GTA 5) (#1015) 2026-10-03 04:00:32 +03:00
RenderHostDeviceTests.cs Perf computed shaders (#1013) 2026-10-03 04:49:43 +03:00
RenderPhaseProfileTests.cs Alpha rebuild part2 (#893) 2026-09-21 00:29:16 +03:00
SdlHostWindowTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
ShaderPrewarmPresenterTests.cs Perf computed shaders (#1013) 2026-10-03 04:49:43 +03:00
SubmissionFlowProfileTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
VideoOutDisplayClockTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
VideoOutFlipRequestTests.cs [Gpu] Expose HDR output support and handle PQ buffer attribute changes 2026-10-02 03:37:17 +03:00
VideoOutFlipStatusTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
VideoOutLatencyTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
VideoOutOutputOptionsTests.cs [VideoOut] Initialize output options storage (#315) 2026-07-18 04:14:27 +03:00
VideoOutOutputSupportTests.cs [VideoOut] Keep guests on SDR output under Auto HDR on macOS (#1020) 2026-10-04 05:39:24 +03:00
VideoOutPixelFormatTests.cs Sdl backend (#670) 2026-07-28 03:33:26 +03:00
VulkanFormatConversionTests.cs Fix Vulkan presenter synchronization and frame handling issues (#747) 2026-08-03 00:36:33 +03:00
VulkanGraphicsSubgroupPolicyTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
VulkanGuestImageByteCountTests.cs fix(gpu): support Gen5 flat memory and 3D images (#587) 2026-07-24 15:44:58 +03:00
VulkanGuestImageTypeTests.cs fix(gpu): support Gen5 flat memory and 3D images (#587) 2026-07-24 15:44:58 +03:00
VulkanHostBufferPoolTests.cs Bound Vulkan host buffer pool memory (#201) 2026-07-16 16:44:29 +03:00
VulkanPhysicalDeviceScoringTests.cs [VideoOut] Scope the AMD integrated-GPU penalty to Windows (#339) 2026-07-17 18:48:09 +03:00
VulkanPipelineCacheShardTests.cs Perf computed shaders (#1013) 2026-10-03 04:49:43 +03:00
VulkanPipelineCacheStorageTests.cs Sdl backend (#670) 2026-07-28 03:33:26 +03:00
VulkanPresentEncodeFormatTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00
VulkanStorageFeedbackTargetResolverTests.cs Fix for DS,Little Nightmares, Little Nightmares III and Astro Bot shader (#913) 2026-09-27 20:43:07 +03:00
WindowPollProfileTests.cs Alpha Rebuild Progress (#887) 2026-09-20 04:09:27 +03:00