Skip to content

Instantly share code, notes, and snippets.

@emersion
Last active February 26, 2021 08:52
Show Gist options
  • Save emersion/3e380271534a634522fedf9d95b85fe7 to your computer and use it in GitHub Desktop.
Save emersion/3e380271534a634522fedf9d95b85fe7 to your computer and use it in GitHub Desktop.
GPU hardware limitations

Intel

  • Enabling some modifiers can lead to hitting bandwidth limitations (not being able to light up a CRTC).
  • With YUV buffers, planes can only have a position with even coordinates (or odd?).

AMD

  • There's no real cursor plane, instead the hardware draws it on the top-most plane (overlay if enabled, otherwise primary). Thus the cursor composition properties (scaling, rotation, blend mode, etc) must match the underlying plane's. An RGB cursor buffer can't be used if the underlying plane uses a YUV format.
  • 90-degree and 270-degree rotations are not supported for linear buffers. Tiled buffers are required.
  • The primary plane needs to be enabled to allow any other plane to be enabled.

Arm

  • There's no limit on the number of planes. The only limit is the bandwidth usage. The kernel will expose an arbitrary number of planes.
  • Some planes can't overlap.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment