الحبار: تسريع رسومات GPU

يستخدم وضع الرسومات المتسارع في 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.