For the past few days, I’ve been banging my head against a wall trying to sort out how to make the Enlightenment restart experience better when running under Direct Rendering. There are a lot of issues with this, a lot of mountains to climb, and it’s caused much brain pain trying to sort it out so I’ve decided to step back and think on it a bit more.
While taking a step back, I decided to implement a few missing features for the Direct Rendering backend. One of those features is Screen Rotation support. In order to support screen rotation, we needed support for Hardware Planes inside Ecore_Drm. While this is not overly difficult to expose (set a bit in the driver via a libdrm function call), utilizing the hardware planes is a bit more involved. The purpose of utilizing these hardware planes would be to put cursor images inside the hardware Cursor plane, video surfaces in the Overlay plane, etc. This would save on redraws and potentially speed up rendering.
So in the process of implementing Screen Rotation, I’ve started some initial work on exposing these hardware planes (via Ecore_Drm library) for use in EFL rendering. Now that the hardware planes are available, I am able to start down the path of getting proper objects onto the proper layer. This will take some time, but I am hoping that all this will be available for the 1.18 release of EFL. In the meantime, I leave you with a Screen Rotation shot (rotated 180 degrees)