Wayland in Embedded linux/3. Wayland & DRM driver

1. Wayland와 DRM드라이버

Onionfra 2017. 5. 26. 13:04

[Wayland기반 관련 모듈들의 역할]

위 그림은 사용자 터치 이벤트 발생으로부터 패널의 화면이 출력 되기까지 불리워 지는 주요 함수들을 보여주고 있다. 커널에서 lcd가 출력되는 기본적인 메커니즘(vblank, page flip)을 이해한 뒤 코드를 보면 좀 더 이해가 쉽다. kernel의 함수는 일단 라즈베리파이 코드를 참조하였다.

 

위 그림은 wayland가 libdrm을 통해 커널의 DRM드라이버를 사용하여 패널에 이미지를 출력시키기 까지의 과정만 간단히 표현 하였다.

1. Weston은 어플리케이션들이 요청한 이미지를 하나의 이미지로 composite(합성)한다.
2. composite이 완료되면 wayland 서버에 이를 등록하고 커널로부터 FLIP_COMPLETE이벤트를 기다린다.
3. weston은 FLIP_COMPLETE이벤트를 받고난 후 PAGE_FLIP API를 이용하여 준비된 이미지를 buffer에 그리고,
4. DRM_IOCTL_MODE_SETCRTC를 호출하여 실제 LCD에 최종 합성 된 이미지를 출력한다.
5. weston은 커널로부터 VBLANK이벤트를 받아 이전에 사용한 버퍼를 해제하고 다음 이미지를 준비한다.