drm: implement syncobj and fence for VIRGL/VirtIO driver

Extract protocol-agnostic FenceTimeline from Intel to shared
src/drivers/fence.rs — atomic-based fence tracking suitable
for Intel, VIRGL, and AMD drivers.

Extract protocol-agnostic SyncobjManager from Intel to shared
src/drivers/syncobj.rs — syncobj create/destroy/signal/reset/
wait/query and sync_file fd export/import.

Wire both into VirtioDriver:
- Add FenceTimeline + SyncobjManager fields
- Implement all 5 GpuDriver syncobj trait methods
  (create, destroy, wait, export_fd, import_fd)
- Track fence seqnos in virgl_submit_3d (allocate
  before submit, signal after completion)

Intel fence.rs and syncobj.rs converted to thin re-export
modules pointing at shared sources — no behavioral change
for Intel driver.

This gives Mesa VIRGL userspace the standard DRM syncobj
API for GPU/compositor synchronization.
This commit is contained in:
2026-06-02 14:33:28 +03:00
parent 1632a59b02
commit 7686729069
2449 changed files with 847727 additions and 324 deletions
@@ -0,0 +1,31 @@
# `file-magic`: Python Bindings
This library is a Python ctypes interface to `libmagic`.
## Installing
You can install `file-magic` either with:
python setup.py install
# or
easy_install .
# or
pip install file-magic
## Using
import magic
detected = magic.detect_from_filename('magic.py')
print 'Detected MIME type: {}'.format(detected.mime_type)
print 'Detected encoding: {}'.format(detected.encoding)
print 'Detected file type name: {}'.format(detected.name)
## Developing/Contributing
To run the tests:
python setup.py test