mirror of
https://github.com/SerenityOS/serenity.git
synced 2026-11-07 12:38:38 -10:00
This driver is split into two main .cpp files: DeviceNode.cpp and V3D.cpp. V3D is the core driver, while DeviceNode.cpp implements the userspace API that exposes the device a device node (file). Job submission is currently implemented in a very basic synchronous way by simply using a Mutex. The driver is currently not able to cancel or abort any jobs, meaning that a GPU page fault or hang will currently make the GPU unusable until rebooting the system. Similarly, EINTRs will also interrupt the code waiting for job completion, but since we have no way of cancelling the job, the GPU might be in some undefined state.