9 Graphics
Linux rootfs에는 빌드되고 설치된 여러 그래픽 도구, 테스트와 예제 프로그램이 있다. 선택한 빌드와 패키지, 보드 그리고 지정된 백엔드에 따라 포함되는 항목에 약간의 차이가 있다. 이 섹션에서는 그 중 일부를 설명한다.
시스템에서 사용되는 그래픽의 커널 모듈 버전은 보드에서 다음 커맨드를 실행하여 찾을 수 있다:
dmesg | grep Galcore
그래픽의 사용자 측 GPU 드라이버 버전은 보드에서 다음 커맨드를 사용하여 표시할 수 있다:
grep VERSION /usr/lib/libGAL*
그래픽 문제를 보고할 때 이 버전 번호가 필요하다.
9.1 imx-gpu-sdk
이 그래픽 패키지에는 X11, Framebuffer 그리고 XWayland 그래픽 백엔드용 OpenGLES 2.0과 OpenGLES 3.0 API에 대한 여러 그래픽 예제 소스가 포함되어 있다. 이러한 애플리케이션은 그래픽 가속이 다양한 API에서 작동하고 있음을 보여준다. 패키지에는 i.MX 그래픽 코어 제품군으로 작업하기 위한 샘플, 데모 코드와 문서가 포함되어 있다. 이 SDK에 대한 자세한 내용은 i.MX Graphics User's Guide를 참조한다. 이 SDK는 OpenGLES 하드웨어 가속 기능이 있는 하드웨어에서만 지원된다.
9.2 G2D-imx-samples
G2D Application Programming Interface(API)는 2D BLT 기능을 쉽게 사용하고 이해할 수 있도록 디자인되었다. 이를 통해 사용자는 간단한 인터페이스로 사용자 정의 애플리케이션을 구현할 수 있다. 2D 그래픽을 사용할 때, 하드웨어와 플랫폼에 독립적이다.
G2D API는 다음과 같은 기능을 지원한다:
- 소스에서 대상까지 간단한 BLT 작업
- Porter-Duff 규칙(디지털 이미지 조합)을 사용하여 소스와 대상에 대한 알파 블렌딩
- 소스에서 대상으로 고성능의 메모리 복사
- 소스에서 대상으로 업 스케일(확대) 및 다운 스케일(축소)
- 소스에서 대상으로 90/180/270도 회전
- 소스에서 대상으로 수평 및 수직 뒤집기(flip)
- 픽셀 정밀도 손실을 위한 디더링으로 시각적 품질 향상
- 대상에 대한 고성능의 메모리 지우기
- 소스 표면에 대한 픽셀 레벨의 자르기(crop)
- 소스 전용 전역 알파 블렌딩
- 비동기 모드와 동기화
- 연속적인 메모리 할당
- VG 엔진
G2D API 문서에는 자세한 인터페이스 설명과 샘플 코드가 포함되어 있다. API는 C 스타일 코드로 디자인되었으며, C와 C++ 애플리케이션에서 사용할 수 있다.
G2D는 모든 i.MX에서 지원된다. G2D를 지원하는 하드웨어는 아래와 같다. 자세한 내용은 i.MX Release Notes(IMXLXRN)의 Frame Buffer 정보를 참조하여 G2D에 사용되는 하드웨어를 확인한다.
- GPU가 있는 i.MX 6의 경우, G2D는 2D GPU를 사용한다.
- PXP가 있는 i.MX의 경우, G2D는 제한된 G2D 기능의 PXP를 사용한다.
다음은 /opt 아래에 위치한 G2D 테스트 애플리케이션의 디렉토리 구조이다.
- g2d_samples
- g2d_test
- g2d_overlay_test
- g2d_multiblit_test
- g2d_test
9.3 viv_samples
viv_samples 디렉토리는 /opt 아래에서 찾을 수 있다. 여기에는 OpenGL ES 1.1/2.0와 OpenVG 1.1를 위한 바이너리 샘플이 포함되어 있다.
다음은 시스템이 올바르게 구성되었는지 확인하는 데 도움이 되는 기본적인 건전성 테스트이다.
- cl11: 여기에는 OpenCL 1.1 Embedded Profile에 대한 단위 테스트와 FFT 샘플이 포함되어 있다. OpenCL은 i.MX 6Quad, i.MX 6QuadPlus 그리고 i.MX 8 보드에서 구현되어 있다.
- UnitTest
- clinfo
- loadstore
- math
- threadwalker
- test_vivante
- functions_and_kernels
- illegal_vector_sizes
- initializers
- multi_dimensional_arrays
- reserved_data_types
- structs_and_enums
- unions
- unsupported_extensions
- fft
- UnitTest
- es20: 여기에는 Open GLES 2.0에 대한 테스트가 포함되어 있다.
- vv_launcher
- coverflow.sh
- vv_launcher
- vv_launcher
- tiger: 회전하는 호랑이 머리가 있는 간단한 OpenVG 애플리케이션이다. 이것은 OpenVG를 시연하기 위한 것이다.
- vdk: OpenGL ES 1.1와 OpenGL ES 2.0에 대한 건전성 테스트가 포함되어 있다.
Tiger와 VDK 테스트는 하드웨어 가속이 사용되고 있다는 것을 보여준다. 하드웨어 가속 없이는 실행되지 않는다.
9.4 Qt 6
Qt 6은 bitbake imx-image-full 커맨드를 사용하여 Yocto Project 환경의 Linux 이미지에 포할 수 있다. Qt 활성화에 대한 자세한 내용은 meta-imx 저장소의 README와 i.MX Yocto Project User's Guide(IMXLXYOCTOUG)를 확인한다.
'NXP i.MX SoC Family > i.MX Linux User`s Guide (IMXLUG)' 카테고리의 다른 글
i.MX Linux User's Guide (IMXLUG) - Connectivity (0) | 2023.03.28 |
---|---|
i.MX Linux User's Guide (IMXLUG) - Security (0) | 2023.03.13 |
i.MX Linux User's Guide (IMXLUG) - Audio (0) | 2023.03.06 |
i.MX Linux User's Guide (IMXLUG) - Multimedia (0) | 2023.02.24 |
i.MX Linux User's Guide (IMXLUG) - Power Management (0) | 2023.02.24 |