On Wed, 1 Feb 2017, 23:14 Alexander Graf <[email protected]> wrote:

> EFI GOP has support for multiple different bitness types of frame buffers
> and for a special "BLT only" type which is always defined to be RGBx.
>
> Because grub2 doesn't ever directly access the frame buffer but instead
> only renders graphics via the BLT interface anyway, we can easily support
> these adapters.
>
We do use direct framebuffer.

>
> The reason this has come up now is the emerging support for virtio-gpu
> in OVMF. That adapter does not have the notion of a memory mapped frame
> buffer and thus is BLT only.
>
> Signed-off-by: Alexander Graf <[email protected]>
> ---
>  grub-core/video/efi_gop.c          | 2 ++
>  include/grub/efi/graphics_output.h | 3 ++-
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c
> index 7f9d1c2..c9e40e8 100644
> --- a/grub-core/video/efi_gop.c
> +++ b/grub-core/video/efi_gop.c
> @@ -121,6 +121,7 @@ grub_video_gop_get_bpp (struct grub_efi_gop_mode_info
> *in)
>      {
>      case GRUB_EFI_GOT_BGRA8:
>      case GRUB_EFI_GOT_RGBA8:
> +    case GRUB_EFI_GOT_BLT_ONLY:
>        return 32;
>
>      case GRUB_EFI_GOT_BITMASK:
> @@ -187,6 +188,7 @@ grub_video_gop_fill_real_mode_info (unsigned mode,
>    switch (in->pixel_format)
>      {
>      case GRUB_EFI_GOT_RGBA8:
> +    case GRUB_EFI_GOT_BLT_ONLY:
>        out->red_mask_size = 8;
>        out->red_field_pos = 0;
>        out->green_mask_size = 8;
> diff --git a/include/grub/efi/graphics_output.h
> b/include/grub/efi/graphics_output.h
> index 1297774..e438812 100644
> --- a/include/grub/efi/graphics_output.h
> +++ b/include/grub/efi/graphics_output.h
> @@ -28,7 +28,8 @@ typedef enum
>    {
>      GRUB_EFI_GOT_RGBA8,
>      GRUB_EFI_GOT_BGRA8,
> -    GRUB_EFI_GOT_BITMASK
> +    GRUB_EFI_GOT_BITMASK,
> +    GRUB_EFI_GOT_BLT_ONLY,
>    }
>    grub_efi_gop_pixel_format_t;
>
> --
> 1.8.5.6
>
>
> _______________________________________________
> Grub-devel mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to