Notes from reading VedCloud's port, which uses NullMoth's transport (PolyForm NC; design reference only, XeGfx is BSD-2):
- Sandboxed apps cannot open
/dev/dri. Their libdrm falls back to an IOKit user client on the accelerator (drmNmxOpen/drmNmxIoctl, type'NMXD'), hands the process a stand-in fd and routes every Mesaintel_ioctlthrough it. WindowServer and most Metal clients are sandboxed, so our shim needs the same split. - Mapping by ioctl has to pin. A mapping that cannot be revoked must hold the buffer's pages for its whole lifetime; i915's CPU mmap path did not, so pages could be reclaimed under a live mapping. They also refuse the legacy GTT mmap type and report GTT mmap version 4 (ROADMAP Phase 7).
- sync_file: unclear how ANV's
i915_gem_supports_dma_buf_sync_fileprobe passes on their machine, since their overrides say a kext cannot create the fd. Asked them: see the VedCloud issue linked below.
Question to VedCloud: VedCloud/Meteor-Lake-Xe-LPG-Metal-Graphics#1