يستخدم وضع الرسومات المتسارع في Cuttlefish وحدة معالجة الرسومات الفعلية (GPU) لجهازك المضيف للعرض عن طريق تمرير أوامر عرض الضيف إلى جهازك المضيف، وتشغيل استدعاءات أوامر العرض على جهازك المضيف، وتمرير النتائج المقدمة مرة أخرى إلى الضيف.
افتراضيًا، تتم معالجة العرض من جانب الضيف (على سبيل المثال، واجهة المستخدم وتشغيل الفيديو) في جهاز Cuttlefish الخاص بك بواسطة SwiftShader. SwiftShader هو تطبيق برمجي لواجهات برمجة تطبيقات OpenGL وVulkan. نظرًا لأن SwiftShader عبارة عن تطبيق برمجي، فهو يوفر حل عرض يمكن الوصول إليه عالميًا لـ Cuttlefish القادر على التشغيل على أي جهاز مضيف.
ومع ذلك، فإن استخدام SwiftShader ليس بنفس أداء الجهاز العادي. يعد العرض مشكلة متوازية يمكن موازنتها على نطاق واسع، حيث يمكن حساب قيم البكسل بشكل مستقل. وحدات معالجة الرسومات (GPUs) هي وحدات أجهزة تعالج هذه المشكلة عن طريق تسريع العرض.
متطلبات
يتطلب وضع الرسومات المتسارع أن يكون لدى المضيف ما يلي:
- برنامج تشغيل قادر على EGL يدعم امتداد
GL_KHR_surfaceless_context
- برنامج تشغيل قادر على برنامج OpenGL ES
- سائق فولكان قادر
استخدم أوضاع الرسومات المتسارعة
GfxStream
لاستخدام وضع الرسومات المتسارع GfxStream، قم بتشغيل جهاز Cuttlefish المحلي باستخدام علامة --gpu_mode=gfxstream
. باستخدام هذا الوضع، تتم إعادة توجيه استدعاءات OpenGL وVulkan API مباشرةً إلى المضيف.
launch_cvd --gpu_mode=gfxstream
فيرجل
لاستخدام وضع رسومات Virgl المتسارع، قم بتشغيل جهاز Cuttlefish المحلي الخاص بك باستخدام علامة --gpu_mode=drm_virgl
.
launch_cvd --gpu_mode=drm_virgl
عند استخدام وضع رسومات Virgl المتسارع، تتم ترجمة استدعاءات OpenGL API إلى تمثيل وسيط (انظر Gallium3D ). يتم إرسال التمثيل الوسيط إلى المضيف وتقوم مكتبة Virglrenderer الموجودة على المضيف بترجمة التمثيل الوسيط مرة أخرى إلى استدعاءات OpenGL API.