崗位職責
1. 核心開發(fā):
a. 使用 Vulkan 的 VK_KHR_display 擴展,通過 DRM/KMS 實現(xiàn)直接渲染到硬件顯示緩沖區(qū),繞過 linux桌面和 SurfaceFlinger。
b. 實現(xiàn) Vulkan 離屏渲染,并將渲染結果寫入 Framebuffer(如 /dev/fb0),作為備用方案。
c. 使用 OpenGL ES 和 EGL 實現(xiàn)離屏渲染,結合 Framebuffer 或硬件緩沖區(qū),確保高效的屏幕接管。
2. 系統(tǒng)集成:
a. 修改 linux系統(tǒng)源碼(AOSP),調整顯示相關服務以支持自定義渲染。
b. 適配 MediaTek Dimensity 9300 平臺的 GPU(Immortalis-G720 MP12)和顯示驅動。
c. 調試和優(yōu)化 SELinux 策略,確保對 /dev/dri/card0 或 /dev/fb0 的訪問權限。
3. 性能優(yōu)化:
a. 優(yōu)化 Vulkan/OpenGL ES 渲染管線,減少 GPU 到 CPU 的數(shù)據(jù)拷貝開銷。
b. 確保渲染性能滿足實時需求(如 60 FPS),支持復雜 2D/3D 圖形或靜態(tài)內容。
4. 測試與驗證:
a. 在目標設備上測試渲染效果,驗證分辨率、像素格式(如 RGBA8888、RGB565)兼容性。
b. 使用調試工具(如 dmesg、vulkan-tools、fbset)排查問題。
5. 文檔與協(xié)作:
a. 編寫技術文檔,記錄實現(xiàn)方案、代碼結構和調試方法。
b. 與硬件團隊和系統(tǒng)開發(fā)團隊協(xié)作,確保方案與設備驅動兼容。
任職要求
1. 底層圖形開發(fā)工程師,負責在 linux平臺上實現(xiàn)基于 DRM/KMS 和 Vulkan 的顯示屏接管功能,或使用 OpenGL ES 結合 Fr amebuffer/EGL 進行離屏渲染的替代方案。
2. 該職位需要深入理解 linux系統(tǒng)架構、Linux 內核顯示驅動(如 DRM/KMS)、以及現(xiàn)代圖形 API(如 Vulkan 和 OpenGL ES)。
3. 候選人將參與定制化顯示渲染開發(fā),優(yōu)化性能并確保與 MediaTek Dimensity 9300 等平臺的兼容性。