There are no additional assumptions except the presence of a device driver for the monitor.
This means that you can use X or Wayland because it is the graphics driver infrastructure in Linux.
Linux (the kernel) itself does not contain graphical primitives. It provides some interfaces for communicating with the GPU, allocating memory on it, and setting up the on-screen framebuffer. But, with the exception of access to the raw memory of the framebuffer, the Linux kernel does not have the ability to perform drawing operations. To do this, you need infrastructure in user space.
Wayland is based on DRI2, which in turn is negotiating with the DRM API. Then you need to monitor the status of the GPU. Mesa has state trackers for a number of GPUs and provides OpenGL and OpenVG interfaces.
NVidia and ATI players with closed source graphics drivers are designed to work only with X. Therefore, in order to use the GPU, you must use X. It is as it is.
In addition, you can manipulate the framebuffer's screen memory with /dev/fbdev , but this is a simple click on a pixel without GPU acceleration.
source share