1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 05:37:44 +00:00

Kernel: Add support for multiple VirtIO GPU outputs

This creates /dev/fbX devices for each physical output, owned by the
parent VirtIOGPU instance. This allows mapping and setting resolutions
independently for each output.
This commit is contained in:
Tom 2021-06-25 20:44:48 -06:00 committed by Andreas Kling
parent 708f27ca0e
commit 8749235046
8 changed files with 305 additions and 194 deletions

View file

@ -32,7 +32,7 @@ private:
class VirtIOGPUConsole final : public GenericFramebufferConsole {
public:
static NonnullRefPtr<VirtIOGPUConsole> initialize(RefPtr<VirtIOGPU>);
static NonnullRefPtr<VirtIOGPUConsole> initialize(RefPtr<VirtIOFrameBufferDevice> const&);
virtual void set_resolution(size_t width, size_t height, size_t pitch) override;
virtual void flush(size_t x, size_t y, size_t width, size_t height) override;
@ -45,9 +45,9 @@ private:
return m_framebuffer_region.unsafe_ptr()->vaddr().as_ptr();
}
VirtIOGPUConsole(RefPtr<VirtIOGPU>);
VirtIOGPUConsole(RefPtr<VirtIOFrameBufferDevice> const&);
WeakPtr<Region> m_framebuffer_region;
RefPtr<VirtIOGPU> m_gpu;
RefPtr<VirtIOFrameBufferDevice> m_framebuffer_device;
DirtyRect m_dirty_rect;
};