Repository navigation
Conversation
|
Linux data point on CI's device class: Result: the skip the PR reports removing on RADV stays on lavapipe, on both arms. The five tests ( Why, from The AI-assisted: yes |
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
Thanks for the detailed paired run and strace. I checked the import ordering and the post-warm-up The current skip message does not identify which import path lost write watching. I am retaining that diagnostic improvement as a follow-up; I have not changed production importer ordering or claimed the fixture removes the lavapipe skip. |
|
The paired RADV evidence and explicit lavapipe limitation make the scope of this fixture change clear. The branch is now 78 commits behind current |
a71cc04 to
8ee4407
Compare
|
Rebased onto main Refreshed the manual shared-file overlap assessment against current heads of #6300/#6808/#9533/#9717/#9742, including the three that changed during validation. None duplicates the Linux shared-backing resolver; shared fixture integrations must retain each branch's test cases. This is not a complete-branch joint-runtime claim. Description and public final-head receipts updated ( |
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed exact head 8ee44075d8838849df7209fce2dfd8f23ca4affc. This is limited to Linux test-fixture backing; the shared memfd resolver is scoped to the two fixtures and removed on exit, and write watching is unregistered before unmapping. The report now distinguishes the RADV result from lavapipe's retained host-pointer/write-watch limitation and does not claim the fixture forces the latter importer path.
The author reports both revisions rebuilt and the five focused tests rerun with Vulkan required, caches disabled, and the Khronos validation layer loaded: RADV main 4 pass/1 skip versus candidate 5 pass/0 skips; lavapipe 4 pass/1 skip on both. No VUIDs were reported. Current main has no later edits to either changed fixture file since the candidate base. I have no local GPU device for independent execution. Hosted policy checks pass; product jobs are skipped.
|
Windows check that the Windows allocation path is unaffected. Static. Comparing only the code a
Runtime. Head
No That line inside |
|
@JJenkx, a full CI run with this head ( Two things combine here:
Could you keep a |
|
Fixed in The observed lavapipe skip is still expected: its host-import probe reports write protection resolved by GPU fill, so direct imports use comparisons. The earlier main/change RADV/lavapipe logs remain attached with their exact old heads. The new-head reruns are queued in the shared GPU FIFO; I will attach their results when terminal. Please rerun hosted CI on this corrected head; no production importer change or skip-classifier relaxation is included. |
|
Final-head reruns are now complete on Final-head logs, actual JUnit reports and classifier outputs, SHA-256 Description updated. This addresses the requested wording/skip-classification change and documents the existing host-pointer path limitation; it does not force watched imports or count the unavailable HTILE assertion as passing. Hosted full CI remains for the maintainer to rerun. |
What
The Linux native depth fixtures allocate anonymous private mappings, so they cannot provide a shared backing descriptor to the existing guest-memory importer. On this RADV host,
agc_driver_native_depth_bda_clearskips; the other depth tests can pass without exercising the tracked HTILE dispatch.Give the two Linux fixtures sealed, shared
memfdbacking, retain the file offset after aligning each mapping, and register a bounded resolver that returns a duplicated descriptor. Remove the resolver on scope exit and unregister write watching before unmapping the BDA fixture. This changes test allocation only; no production rendering code or guest exports change. Windows and other POSIX allocation paths retain their existing backing.The clear test now logs when its tracked HTILE dispatch actually completes, so a passing run can be distinguished from an unavailable path.
Tested
2026-10-24 review correction: head
88be59f9904bc75a576e084b7a9a8969c4384b56adds one diagnostic-string change on top of the previously tested8ee44075d8. The skip now beginsskipped, the device does not retain guest write watching ..., preserving the watched/resolver counts and matching the existing LinuxDEVICE_LIMITATIONclassifier. No production code, test branch conditions or importer selection changed. Both focused executables rebuilt successfully. A JUnit check reproduces rejection of the old wording, accepts the new wording, and still rejects an unrelated unexpected skip. Conventions and diff checks pass; local merge-tree against mainc077c7aaa1is clean. Final-head GPU reruns completed through the shared lock (ticket 551): RADV 5 passed/0 skipped; lavapipe 4 passed/1 expected BDA-clear skip. Actual Khronos insertion is verified in every focused test, with zero VUID errors on both drivers. The unchangedtools/check_skips.py --job linuxpasses on both actual JUnit reports. The earlier paired main/change evidence below retains its own exact heads; this final rerun does not represent a fresh integration build on latest main.Why lavapipe can still skip with shared backing: its probe logs that a GPU fill resolves host-import write protection (4/4 scratch pages reported written), so
decideImportWatchselects comparisons for direct host-pointer imports. The dma-buf probe separately retains protection. With these different policies, import first attempts the direct host pointer and consults shared backing only if that attempt fails. A successful direct import therefore leaves the fixture resolver unused (zero descriptor returns) and marks the imported range unwatched. This follows the existingGuestBufferMemory.cppselection and agrees with the watched=0 diagnostics; shared memfd backing alone does not force dma-buf selection. The tracked HTILE assertion is expected to remain skipped on this observed lavapipe path. It is not a passing assertion and no forced-watch override or broadening ofcheck_skips.pyis introduced. Hosted CI should confirm its own device behavior.Final-head logs, actual JUnit reports and classifier outputs, SHA-256
2c39a3287b1efa5d82ee7b16a08dabcab2554beb0beb5b67879fef0c3c8a9fe2.Historical paired GPU validation follows:
Refreshed onto main
1da03c6f34fcff493a5d09966fa30b4269b4da93, final candidate8ee44075d8838849df7209fce2dfd8f23ca4affc(two linear commits, no merge commits). Both targets rebuilt on main and the final candidate. Same Arch Linux 7.2.9 machine, Ryzen 9 7950X, RX 6650 XT / RADV Mesa 26.2.4; lavapipe Mesa 26.2.4 also tested on that machine.The five tests are
agc_driver_native_depth_bda_clear,agc_driver_native_multisample_depth,agc_driver_native_depth_retirement,agc_driver_native_depth_clears, andagc_driver_native_depth_clear_refusals. Khronos validation actually loaded in every test on both revisions and drivers; zeroVUID-messages in all four logs. Shader caches disabled and Vulkan required. The retained lavapipe skip is not counted as a pass.On the RADV candidate, all three BDA owner/texture/attachment consumers report
Native full BDA clear accepted; completed clear coverage reportschecked=27 unavailable=0, andNative HTILE tracked dispatch completedconfirms that path ran. Lavapipe still loses write watching after warm-up (depth and metadata watched=0); the added diagnostic records shared backing present and resolver descriptor returns of zero. Those counts describe resolver calls, not successful Vulkan imports; the change does not override the existing host-pointer importer selection. This retains the reviewer-observed driver limitation.tools/check_conventions.pyandgit diff --checkpass on the final candidate. Only the two intended test fixture files change; no production renderer behavior changes.Full refreshed paired logs, exact heads, validation-loader counts, skip diagnostics and final overlap snapshots (
refresh-*files). Earlier evidence remains historical and is superseded by these final-head runs.Reproduce after building
agc_driver_native_depth_bda_clear_testsandagc_driver_native_multisample_depth_tests:VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation VK_LOADER_DEBUG=layer VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.json ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 APS5_WRITE_WATCH_IMPORTS=probe ctest --test-dir BUILD -V --no-tests=error -R '^agc_driver_native_(depth_bda_clear|multisample_depth|depth_retirement|depth_clears|depth_clear_refusals)$'The validation layer must be installed/discoverable. For lavapipe use its ICD and, on this machine,
GALLIUM_OVERRIDE_CPU_CAPS=avx. No Windows runtime, title bring-up or performance gain is claimed.Manual overlap review refreshed after validation: #6300, #6808, #9533, #9717 and #9742 still use anonymous Linux
TargetMemorybacking and have no equivalent shared resolver. Three peer heads changed during validation; their full final fixture blobs were retrieved and rechecked. They change depth/stencil/HTILE behavior and coverage; this PR supplies independent Linux fixture backing and diagnostics. Integrating shared fixture edits requires preserving those branches' added test cases. This is a manual shared-file review, not proof that every complete branch merges or jointly passes; Depends on remains none. #6727 is also historical shared-file overlap.Checklist
main; no other open PR implements the same functions.mdfiles or images added to the repository