Mực ống: Tăng tốc đồ hoạ GPU

Chế độ đồ hoạ tăng tốc của Mực ống sử dụng cơ chế đồ hoạ bộ xử lý đồ hoạ (GPU) để kết xuất bằng cách truyền các lệnh kết xuất khách vào máy chủ, chạy lệnh kết xuất lệnh gọi trên máy chủ, rồi chuyển kết quả kết xuất lại cho khách.

Một thiết bị mực ống chạy trên Android 11 trở lên phát hiện và sử dụng đồ hoạ được tăng tốc. Nếu máy chủ không hỗ trợ đồ hoạ tăng tốc hoặc phiên bản Android được tăng tốc Tính năng hiển thị phía máy khách trên Android 10 trở xuống (ví dụ: Giao diện người dùng và quá trình phát video) trên thiết bị Cuttlefish do SwiftShader xử lý. SwiftShader là một cách triển khai phần mềm của API OpenGL và Vulkan. Bởi vì SwiftShader là một triển khai phần mềm, cung cấp một giải pháp triển khai trên toàn cầu cho Cuttlefish có thể chạy trên bất kỳ máy chủ nào.

Tuy nhiên, việc sử dụng SwiftShader không hiệu quả như thiết bị thông thường. Kết xuất mới là một vấn đề song song có thể được tải song song hàng loạt, khi pixel các giá trị có thể được tính toán độc lập. Đơn vị xử lý đồ hoạ (GPU) là giúp giải quyết vấn đề này bằng cách tăng tốc kết xuất.

Yêu cầu

Chế độ đồ hoạ tăng tốc yêu cầu máy chủ lưu trữ có:

  • Trình điều khiển có khả năng EGL hỗ trợ tiện ích GL_KHR_surfaceless_context
  • Trình điều khiển hỗ trợ OpenGL ES
  • Trình điều khiển hỗ trợ Vulkan

Sử dụng chế độ đồ hoạ tăng tốc

Luồng Gfx

Để sử dụng chế độ đồ hoạ tăng tốc GfxStream, hãy chạy Cuttlefish trên thiết bị thiết bị có cờ --gpu_mode=gfxstream. Khi sử dụng chế độ này, OpenGL và Vulkan Các lệnh gọi API sẽ được chuyển tiếp trực tiếp đến máy chủ.

launch_cvd --gpu_mode=gfxstream

virgl

Để sử dụng chế độ đồ hoạ tăng tốc Virgl, hãy khởi chạy thiết bị Mực ống trên thiết bị bằng cờ --gpu_mode=drm_virgl.

launch_cvd --gpu_mode=drm_virgl

Khi sử dụng chế độ đồ hoạ được tăng tốc Virgl, các lệnh gọi API OpenGL sẽ được dịch thành biểu diễn trung gian (xem Gallium3D). Chiến lược phát hành đĩa đơn đại diện trung gian được truyền đến máy chủ và Thư viện virglrenderer bật máy chủ lưu trữ sẽ dịch nội dung biểu diễn trung gian trở lại các lệnh gọi API OpenGL.