Message ID | 20210220143749.omaoooquudaqiawf@smtp.gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | drm/vkms: add overlay plane support | expand |
Hi Am 20.02.21 um 15:37 schrieb Melissa Wen: > Adding support to overlay type in addition to primary and cursor plane. > The planes composition relies on the z order of the active planes and > only occurs if there is a primary plane (as in the current behavior). > > The first patch decouples cursor from crtc_init. It initializes the CRTC > only with primary plane, and setup the cursor plane externally. This is > a preparation to allow to initialize the overlay plane between primary > and cursor. > > The second patch generalize variables and functions names to refer to > any kind of plane, not only cursor. The goal is to reuse them for > blending overlay and cursor planes to primary. It's not directly relevant to the patchset here, but sort-of related. Vkms is effectively shadow buffered. I'd like to promote the new helpers for shadow-buffered planes in drm_gem_atomic_helper.h. There's plane state and helper functions available that automatically vmap and vunmap framebuffer BOs. You can safe the rsp code in vkms. It would also help with testing the shadow-plane helpers. Best regards Thomas > > The third patch creates a module option to enable overlay, and includes > overlay to supported types of plane. When the overlay option is enabled, > one overlay plane is initialized (plus primary and cursor) and it is > included in the planes composition. > > This work preserves the current results of IGT tests: kms_cursor_crc; > kms_flip and kms_writeback. In addition, subtests related to overlay in > kms_atomic and kms_plane_cursor start to pass (pointed out in the commit > message). > > Melissa Wen (3): > drm/vkms: decouple cursor plane setup from crtc_init > drm/vkms: rename cursor to plane on ops of planes composition > drm/vkms: add overlay support > > drivers/gpu/drm/vkms/vkms_composer.c | 49 ++++++++++++++++------------ > drivers/gpu/drm/vkms/vkms_crtc.c | 4 +-- > drivers/gpu/drm/vkms/vkms_drv.c | 5 +++ > drivers/gpu/drm/vkms/vkms_drv.h | 3 +- > drivers/gpu/drm/vkms/vkms_output.c | 31 ++++++++++++++---- > drivers/gpu/drm/vkms/vkms_plane.c | 20 +++++++++--- > 6 files changed, 76 insertions(+), 36 deletions(-) >