Chế độ tăng tốc đồ hoạ của Cuttlefish sử dụng đơn vị xử lý đồ hoạ (GPU) vật lý của máy chủ lưu trữ để kết xuất bằng cách chuyển các lệnh kết xuất khách sang máy chủ lưu trữ, chạy các lệnh kết xuất trên máy chủ lưu trữ và chuyển kết quả kết xuất trở lại khách.
Thiết bị Cuttlefish chạy Android 11 trở lên sẽ phát hiện và sử dụng đồ hoạ được tăng tốc. Nếu máy chủ lưu trữ không hỗ trợ đồ hoạ được tăng tốc hoặc phiên bản Android là Android 10 trở xuống, thì quá trình kết xuất phía khách (ví dụ: giao diện người dùng và phát video) trong thiết bị Cuttlefish sẽ do SwiftShader xử lý. SwiftShader là một cách triển khai phần mềm của API OpenGL và Vulkan. Vì SwiftShader là một cách triển khai phần mềm, nên nó cung cấp một giải pháp kết xuất có thể truy cập phổ biến cho Cuttlefish, có khả năng chạy trên mọi máy chủ lưu trữ.
Tuy nhiên, việc sử dụng SwiftShader không hiệu quả như một thiết bị thông thường. Kết xuất là một vấn đề song song có thể được song song hoá ở mức độ lớn, vì các giá trị pixel có thể được tính toán độc lập. Đơn vị xử lý đồ hoạ (GPU) là các đơn vị phần cứng giải quyết vấn đề này bằng cách tăng tốc quá trình kết xuất.
Yêu cầu
Chế độ tăng tốc đồ hoạ yêu cầu máy chủ lưu trữ phải có:
- Trình điều khiển có khả năng EGL hỗ trợ phần mở rộng
GL_KHR_surfaceless_context - Trình điều khiển có khả năng OpenGL ES
- Trình điều khiển có khả năng Vulkan
Sử dụng chế độ tăng tốc đồ hoạ
GfxStream
Để sử dụng chế độ tăng tốc đồ hoạ GfxStream, hãy khởi chạy thiết bị Cuttlefish cục bộ bằng cờ --gpu_mode=gfxstream. Khi sử dụng chế độ này, các lệnh gọi API OpenGL và Vulkan sẽ được chuyển tiếp trực tiếp đến máy chủ lưu trữ.
launch_cvd --gpu_mode=gfxstream
Virgl
Để sử dụng chế độ tăng tốc đồ hoạ Virgl, hãy khởi chạy thiết bị Cuttlefish cục bộ bằng cờ --gpu_mode=drm_virgl.
launch_cvd --gpu_mode=drm_virgl
Khi sử dụng chế độ tăng tốc đồ hoạ Virgl, các lệnh gọi API OpenGL sẽ được chuyển thành một biểu diễn trung gian (xem Gallium3D). Biểu diễn trung gian được truyền đến máy chủ lưu trữ và thư viện virglrenderer trên máy chủ lưu trữ sẽ chuyển biểu diễn trung gian trở lại các lệnh gọi API OpenGL.