Skip to content

test: refresh scattered-import fixture coverage - #77

Draft
JJenkx wants to merge 3 commits into
mainfrom
integration/lodoss-scattered-imports-0c
Draft

JJenkx wants to merge 3 commits into
mainfrom
integration/lodoss-scattered-imports-0c

Conversation

@JJenkx

@JJenkx JJenkx commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

What

Current-main review integration of upstream #4449, whose branch conflicts with main. This keeps the original author's commit and ports it onto recorded upstream main 0c4816f61, preserving current import-watch callbacks, the 64 MiB chunk path and larger sparse imports. The original dependency entry is moved with tools/debt_split.py.

Two follow-ups retain the old single-backing provider used by existing fixtures, allow the mocked-device fixture to declare its coherence assumption explicitly, and strengthen the kernel test. The kernel case reverses two physical mappings and requires three backing runs in guest-address order, checking the file-backed payload bytes and a short output array. The ordinary native path continues to measure DMA-buffer coherence before using that fallback.

This is a draft integration for upstream boykopovar#4449 and its follow-up coverage. It is not a second upstream implementation proposal.

Tested

Public source e31645c3ad8f03163874926887032ec00c07c6e1, Linux Release:

  • Full runtime libraries and selected test executables build. Eleven focused CTests pass on RX 6650 XT/RADV and the same eleven pass with lavapipe, zero skips: guest memory, import-watch probe, import unmap/parked lifetime/retirement/hold, mocked sparse imports, import at map/teardown/windows, and real sparse DMA-buffer imports.
  • A deliberate reorder of the scattered backing runs fails the unchanged guest-memory regression at its payload-order check. Restoring the implementation passes. Executable SHA-256 is unchanged: 29596368c6398bd8caaef5315e910ad422065dd22ee9d3c98bc7bbf65b907f60.
  • Radeon coherence probes report zero stale pages after GPU writes over CPU-written bytes, for host-pointer and DMA-buffer imports.
  • Conventions and whitespace pass. No fresh Windows/full-suite result.

Private validation d08cb0072eb051a984e397f5eb48184282763463 differs from this public source only by SPIRV-Tools teardown repair b326807c0c9d8682b697fdad3153f77fc2642f5f. The pin is excluded; the official dependency pin is not independently validated by these builds.

Lodoss PPSA05347 v01.000.001 renders the opening story with this integration and with the main control. A warm-up run closes normally. A matched warm-cache main/changed pair, APS5_TRACE_SECONDS=75:10, has screenshots outside the timed window and no dropped events. The matched main control has 301 presents, p50 33.279 ms; the changed run has 300 presents, p50 33.446 ms. The control closes normally; the changed run exits 139 after its trace at ordinary close, so this is not a shutdown fix or stability claim. Full protocol and results: upstream bring-up discussion #6460. No title unblock or FPS gain is established. Gameplay, movement, combat, audio quality and sustained stability remain unverified. No title assets, screenshots, binaries or raw title logs are included.

Timing traces, summary lines, digests and test hash manifest.

Checklist

Mouad-Scriptz-0 and others added 3 commits October 15, 2026 11:57
… list and probe its coherence

The dma-buf fallback of a host import took one backing file offset for the
whole guest range, while a range mapped from several physical allocations is
several runs of the file (a 4 MiB Minecraft atlas spans 53). libkernel lists
the runs through a new GuestArena hook and the import passes them to
UDMABUF_CREATE_LIST. The import probes also store to the pages from the CPU,
fill the import from the GPU and count pages the CPU still reads stale: i915
maps a dma-buf without snooping the CPU caches, so a device whose dma-buf
imports are not coherent does not use them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@JJenkx JJenkx changed the title test: refresh scattered-import coverage on current main test: refresh scattered-import fixture coverage Oct 15, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant