Skip to content
This repository was archived by the owner on Oct 4, 2025. It is now read-only.
This repository was archived by the owner on Oct 4, 2025. It is now read-only.

Disable alpha blending on OVL0 to ensure full framebuffer opacity #6

@adomerle

Description

@adomerle

MediaTek's display pipeline includes multiple overlay layers (DDP blocks such as OVL0, OVL0_L2, etc.) used for framebuffer composition.

In typical BPP32 (RGBA8888) configurations, the alpha channel is often ignored and defaulted to 0x00. However, in our case, the framebuffer is filled with 0xFF alpha values to indicate full opacity. This leads to incorrect rendering on many platforms, as the default behavior enables alpha blending, causing unintended transparency.

To address this, we should explicitly disable alpha blending on the OVL0 layer in the display subsystem driver.

Why not patch GraphicsOutputProvider?

While it’s possible to patch GraphicsOutputProvider to modify pixel data or mask alpha, this does not resolve the root of the issue:

  • UEFI drivers like LogoDxe may still behave incorrectly due to active blending.
  • It may cause issues with Linux efifb, which expects unblended output.
  • It introduces side effects that are hard to control across different platforms.

Proposed solution:

  • Introduce the dispsys driver to disable alpha blending at the OVL0 level.
  • Ensure the framebuffer is treated as fully opaque regardless of alpha values.

Benefits:

  • This enables a unified framebuffer configuration across devices by setting the same framebuffer address without patching platform-specific components.
  • Cleaner, hardware-level fix without hacks in UEFI.

Metadata

Metadata

Assignees

Labels

todoNew feature in the future

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions