1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 02:57:42 +00:00
serenity/Kernel/Graphics/VirtIOGPU
Liav A 7b6cea9ef4 Kernel: Improve context state keeping in the VirtIOGPU3DDevice class
This is done mainly by implementing safe locking on the data structure
keeping the pointers to the PerContextState objects. Therefore, this now
eliminates the need for using LockRefPtr, as SpinlockProtected is enough
for the whole list.

The usage of HashMap in this class was questionable, and according to
Sahan Fernando (the original contributor to the VirGL work also known as
ccapitalK) there was no deep research on which data structure to use for
keeping all pointers to PerContextState objects.
Therefore, this structure is changed to IntrusiveList as the main reason
and advantage to use it is that handling OOM conditions is much more
simple, because if we succeeded to create a PerContextState object, we
can be sure now that inserting it to the list will not cause OOM error
condition.
2023-04-24 13:09:22 +02:00
..
Console.cpp Kernel: Stop using *LockRefPtr for Kernel::Timer 2023-04-04 10:33:42 +02:00
Console.h Kernel/Graphics: Restore VirtIO GPU framebuffer console functionality 2022-12-31 05:13:21 -07:00
DisplayConnector.cpp Kernel: Simplify VirtIOGPU attach_physical_range_to_framebuffer method 2023-03-19 00:19:06 +00:00
DisplayConnector.h Kernel: Simplify VirtIOGPU attach_physical_range_to_framebuffer method 2023-03-19 00:19:06 +00:00
GPU3DDevice.cpp Kernel: Improve context state keeping in the VirtIOGPU3DDevice class 2023-04-24 13:09:22 +02:00
GPU3DDevice.h Kernel: Improve context state keeping in the VirtIOGPU3DDevice class 2023-04-24 13:09:22 +02:00
GraphicsAdapter.cpp Kernel/Graphics: Use longer timeout settings in VirtIO GPU commands 2023-03-19 00:19:06 +00:00
GraphicsAdapter.h Kernel/Graphics: Introduce a new mechanism to initialize a PCI device 2023-01-07 11:51:13 -07:00
Protocol.h Everywhere: Prefix 'TYPEDEF_DISTINCT_ORDERED_ID' with 'AK_' 2022-07-22 23:09:43 +01:00