1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:48:11 +00:00
serenity/Kernel/Graphics
Liav A efae6e2270 Kernel/Graphics: Propagate errors properly around in the VirtIO driver
This happens to be a sad truth for the VirtIOGPU driver - it lacked any
error propagation measures and generally relied on clunky assumptions
that most operations with the GPU device are infallible, although in
reality much of them could fail, so we do need to handle errors.

To fix this, synchronous GPU commands no longer rely on the wait queue
mechanism anymore, so instead we introduce a timeout-based mechanism,
similar to how other Kernel drivers use a polling based mechanism with
the assumption that hardware could get stuck in an error state and we
could abort gracefully.

Then, we change most of the VirtIOGraphicsAdapter methods to propagate
errors properly to the original callers, to ensure that if a synchronous
GPU command failed, either the Kernel or userspace could do something
meaningful about this situation.
2022-12-19 10:19:57 +00:00
..
Bochs Kernel: Move bar0_space_size declaration out of arch-specific ifdefs 2022-10-26 20:01:45 +02:00
Console Kernel/aarch64: Get framebuffer data from BootFramebufferConsole 2022-10-01 14:09:01 +02:00
Generic Kernel: Remove stale includes of x86 IO header file 2022-09-20 18:43:05 +01:00
Intel Kernel/PCI: Convert PCI BAR number to a strong typed enum class 2022-09-20 18:43:05 +01:00
VirtIOGPU Kernel/Graphics: Propagate errors properly around in the VirtIO driver 2022-12-19 10:19:57 +00:00
VMWare Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
Definitions.h Kernel: Add ioctl to get the EDID from a framebuffer 2022-01-23 22:45:21 +00:00
DisplayConnector.cpp Everywhere: Clean up "the the" comment typos 2022-11-03 17:38:32 +00:00
DisplayConnector.h Kernel/Graphics: Handle correctly unknown ioctls on a DisplayConnector 2022-10-23 14:59:57 +02:00
GenericGraphicsAdapter.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
GraphicsManagement.cpp Kernel/Graphics: Move x86-specific support for VGA to Arch/x86 directory 2022-09-23 17:22:15 +01:00
GraphicsManagement.h Kernel/Graphics: Move x86-specific support for VGA to Arch/x86 directory 2022-09-23 17:22:15 +01:00