a17dccf3dc
Gap 11 (CTX_ATTACH/DETACH_RESOURCE): - Add virgl_ctx_attach_resource + virgl_ctx_detach_resource to GpuDriver trait with default Unsupported fallbacks - Implement ctx_attach_resource + ctx_detach_resource on VirtioGpuDevice using existing VirtioGpuCtxResource wire struct - Wire both into VirtioDriver GpuDriver impl with has_virgl_3d gating - Binds 3D resources to GL contexts for subsequent SUBMIT_3D calls Gap 12 (Atomic ioctl full parser): - Parse drm_mode_atomic header: flags, count_objs, objs_ptr, count_props_ptr, props_ptr, prop_values_ptr - Read object ID array and per-object property arrays from inline payload offsets - Detect CRTC objects and extract FB_ID, MODE_ID, ACTIVE props - Build AtomicState with CRTC mode+fb configurations - Support TEST_ONLY, NONBLOCK, ALLOW_MODESET flags - Add DRM_MODE_ATOMIC_ALLOW_MODESET constant (0x0400) - Add read_u64() helper for 64-bit property values Code readability: - Module-level documentation for VirtioDriver struct - Lock-ordering constraint comment on virgl_resource_create_blob - poll_hotplug purpose explanation (compositor polling vs IRQ) - atomic_commit dispatch comment (validate then delegate)