介紹如何在 Linux 系統中使用既有工具或自行撰寫程式,查詢 EGL 的版本。
Mesa 3D 函式庫中有一個 eglinfo
工具可以用來查詢 EGL 的各種版本資訊,它的作用跟標準的 glxinfo
類似,只不過是針對 EGL 設計的。
若在 Ubuntu Linux 系統上,可以透過 apt 安裝 mesa-utils-extra
套件來取得 eglinfo
:
# 安裝 mesa-utils-extra 套件(Ubuntu)
sudo apt install mesa-utils-extra
若在 CentOS 中,則可用 yum 安裝 mesa-utils-extra
套件來取得:
# 安裝 mesa-utils-extra 套件(CentOS)
sudo yum install egl-utils
安裝好之後,執行 eglinfo
即可取得 EGL 相關的各種資訊:
# 執行顯示 EGL 資訊
eglinfo
egl_example 是一個可以用來查詢 EGL 版本的小工具,我們可以從 GitHub 取得其原始碼,自行編譯使用。
# 取的 egl_example 原始碼
git clone https://github.com/erwincoumans/egl_example.git
在該專案中有附帶一個編譯用的指令稿:
# 編譯程式 cd egl_example sh build.sh
編譯之後,即可直接執行:
# 執行 EGL 查詢程式
./egl_example
Loaded EGL 1.5 after reload. GL_VENDOR=NVIDIA Corporation GL_RENDERER=Tesla V100-SXM2-32GB/PCIe/SSE2 GL_VERSION=4.6.0 NVIDIA 418.87.01 GL_SHADING_LANGUAGE_VERSION=4.60 NVIDIA
這是參考 StackOverflow 的程式碼,自己寫的 EGL 版本查詢程式:
#include <stdio.h> #include <EGL/egl.h> int main() { EGLint major, minor; EGLDisplay eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY); EGLBoolean eglInitialized = eglInitialize(eglDisplay, &major, &minor); if (eglInitialized == EGL_TRUE) { printf("EGL 版本: %d.%d\n", major, minor); } else { printf("EGL 初始化失敗!"); } return 0; }
將這段程式碼儲存為 eglversion.c
,然後以 gcc 編譯:
# 編譯 EGL 程式 gcc egltest.c -lEGL -o egltest
執行 EGL 版本查詢程式:
./egltest
EGL 版本: 1.5