1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 19:37:34 +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

@ -18,7 +18,7 @@ class VirtIOGraphicsAdapter final : public GraphicsDevice {
public:
static NonnullRefPtr<VirtIOGraphicsAdapter> initialize(PCI::Address);
virtual bool framebuffer_devices_initialized() const override { return !m_framebuffer_device.is_null(); }
virtual bool framebuffer_devices_initialized() const override { return m_created_framebuffer_devices; }
private:
explicit VirtIOGraphicsAdapter(PCI::Address base_address);
@ -36,8 +36,7 @@ private:
virtual bool set_y_offset(size_t, size_t) override { return false; }
RefPtr<VirtIOGPU> m_gpu_device;
RefPtr<VirtIOFrameBufferDevice> m_framebuffer_device;
RefPtr<VirtIOGPUConsole> m_framebuffer_console;
bool m_created_framebuffer_devices { false };
};
}