कटलफ़िश का एक्सेलरेटेड ग्राफ़िक्स मोड, आपकी होस्ट मशीन की फ़िज़िकल मशीन की परफ़ॉर्मेंस का इस्तेमाल करता है गेस्ट रेंडरिंग कमांड पास करके, रेंडरिंग के लिए ग्राफ़िक प्रोसेसिंग यूनिट (जीपीयू) से कनेक्ट करने के लिए, रेंडरिंग कमांड से आपकी होस्ट मशीन पर, रेंडर किए गए नतीजों को मेहमान को वापस भेजना.
Android 11 या इसके बाद के वर्शन में इस्तेमाल होने वाला Cuttleफ़िश डिवाइस एक्सेलरेटेड ग्राफ़िक का पता लगाता है और उनका इस्तेमाल करता है. अगर होस्ट मशीन पर बेहतर ग्राफ़िक की सुविधा काम नहीं करती या Android का वर्शन 10 या उससे पहले का है, तो Cuttlefish डिवाइस में मेहमान-साइड रेंडरिंग (उदाहरण के लिए, यूज़र इंटरफ़ेस और वीडियो चलाना) को SwiftShader मैनेज करता है. SwiftShader, OpenGL और Vulkan एपीआई का एक सॉफ़्टवेयर इंप्लिमेंटेशन है. SwiftShader एक सॉफ़्टवेयर है. इसलिए, यह Cuttlefish के लिए ऐसा रेंडरिंग सलूशन उपलब्ध कराता है जिसे सभी होस्ट मशीन पर चलाया जा सकता है.
हालांकि, SwiftShader किसी आम डिवाइस की तरह काम नहीं करता है. रेंडरिंग एक ऐसी समस्या है जिसे पैरलल प्रोसेसिंग की मदद से बड़े पैमाने पर हल किया जा सकता है. ऐसा इसलिए, क्योंकि पिक्सल वैल्यू का हिसाब अलग-अलग लगाया जा सकता है. ग्राफ़िक प्रोसेसिंग यूनिट (जीपीयू) हार्डवेयर यूनिट जो रेंडरिंग को बढ़ाकर इस समस्या को हल करती हैं.
ज़रूरी शर्तें
बेहतर ग्राफ़िक मोड के लिए, होस्ट के पास ये चीज़ें होनी चाहिए:
GL_KHR_surfaceless_context
एक्सटेंशन के साथ काम करने वाला EGL सक्षम ड्राइवर- OpenGL ES के साथ काम करने वाला ड्राइवर
- Vulkan की सुविधा वाला ड्राइवर
बेहतर ग्राफ़िक मोड का इस्तेमाल करना
Gfxस्ट्रीम
GfxStream के ज़रिए तेज़ी से काम करने वाले ग्राफ़िक मोड का इस्तेमाल करने के लिए, --gpu_mode=gfxstream
फ़्लैग के साथ अपना स्थानीय Cuttlefish डिवाइस लॉन्च करें. इस मोड, OpenGL और Vulkan का इस्तेमाल किया जा रहा है
एपीआई कॉल सीधे होस्ट को फ़ॉरवर्ड किए जाते हैं.
launch_cvd --gpu_mode=gfxstream
विर्गल
Virgl के ज़रिए तेज़ी से काम करने वाले ग्राफ़िक मोड का इस्तेमाल करने के लिए, --gpu_mode=drm_virgl
फ़्लैग के साथ अपना स्थानीय Cuttlefish डिवाइस लॉन्च करें.
launch_cvd --gpu_mode=drm_virgl
Virgl accelerted ग्राफ़िक्स मोड का इस्तेमाल करते समय, OpenGL एपीआई कॉल को इंटरमीडिएट रेप्रज़ेंटेशन में बदल दिया जाता है (Gallium3D देखें). कॉन्टेंट बनाने इंटरमीडिएट प्रज़ेंटेशन की जानकारी होस्ट को दी जाती है और virglrenderer लाइब्रेरी चालू है होस्ट, इंटरमीडिएट प्रज़ेंटेशन को OpenGL API कॉल में बदल देता है.