Repository navigation
fix(agc): skip devices without required BDA features - #4847
Isrrael101 wants to merge 1 commit into
Conversation
|
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.
|
BunnyFl
left a comment
There was a problem hiding this comment.
Reads right. QueryBdaByteFeatures and QueryBdaFeatures refuse a missing extension or feature through Graphics::Require, which throws std::runtime_error (Graphics/include/Context.hpp:31-41), so the new catch in the selection loop sees exactly those refusals and moves to the next device. The device chosen is then queried again with the same two calls (Execution/src/VulkanDevice.cpp:1061-1062 at this head). Those calls throw on the same conditions there (VulkanDevice.cpp:1061-1062), so a device skipped by the new check would have failed that setup anyway and no previously working GPU is lost. With ANYPS5_GPU naming only an unsupported device, selection still ends in the "no usable device whose name contains ANYPS5_GPU=..." error (:1027), after the skip reason is logged.
Tested on Windows 11, WinLibs GCC 15.2.0, with this head merged onto main: agc_driver_device_selection, agc_driver_bda_device and agc_driver_bda_device_selection_cpu pass, nothing skipped. The ctest output of this run has no "Skipping physical device" line. The Dozen case itself wasn't reproduced here.
What
The GPU selector accepts a discrete adapter with graphics, compute and presentation queues before checking its required BDA features. WSL's Dozen adapter for an RTX 3060 is selected despite lacking
VK_KHR_8bit_storage, so device initialization fails instead of using the available compatible lavapipe device.Probe the existing byte-storage and buffer-device-address requirements before accepting each candidate. Log the rejection reason and continue selecting among compatible adapters. Explicit
ANYPS5_GPUfiltering still applies. Document the selection requirements.Tested
Ubuntu 26.04 under WSL, Intel i7-11370H, Mesa 26.2.4. Full relinker and patched system-library build completed.
agc_driver_device_selectionpassed with Dozen and lavapipe both installed; the unsupported NVIDIA and Intel Dozen adapters were skipped.agc_driver_bda_devicepassed withVK_DRIVER_FILES=/usr/share/vulkan/icd.d/lvp_icd.json(the default adapter skips this test because it lacks byte storage)._umtx_op, guest module directories and Intel conversion passed.git diff --checkpassed.Checklist
main; no other open PR implements the same functions