Cuttlefish: GPU গ্রাফিক্স ত্বরণ

Cuttlefish এর ত্বরান্বিত গ্রাফিক্স মোড আপনার হোস্ট মেশিনে গেস্ট রেন্ডারিং কমান্ড পাস করে, আপনার হোস্ট মেশিনে রেন্ডারিং কমান্ড কলগুলি চালানো এবং রেন্ডার করা ফলাফলগুলি গেস্টের কাছে ফেরত দেওয়ার জন্য আপনার হোস্ট মেশিনের ফিজিক্যাল গ্রাফিক্স প্রসেসিং ইউনিট (GPU) ব্যবহার করে।

ডিফল্টরূপে, আপনার Cuttlefish ডিভাইসে গেস্ট-সাইড রেন্ডারিং (উদাহরণস্বরূপ, UI এবং ভিডিও প্লেব্যাক) SwiftShader দ্বারা পরিচালিত হয়। SwiftShader হল OpenGL এবং Vulkan API-এর একটি সফ্টওয়্যার বাস্তবায়ন। যেহেতু SwiftShader হল একটি সফ্টওয়্যার বাস্তবায়ন, এটি একটি সার্বজনীনভাবে অ্যাক্সেসযোগ্য রেন্ডারিং সমাধান প্রদান করে যে কোনো হোস্ট মেশিনে চালাতে সক্ষম Cuttlefish-এর জন্য।

যাইহোক, SwiftShader ব্যবহার করা সাধারণ ডিভাইসের মতো পারফরম্যান্স নয়। রেন্ডারিং একটি সমান্তরাল সমস্যা যা ব্যাপকভাবে সমান্তরাল হতে পারে, কারণ পিক্সেল মানগুলি স্বাধীনভাবে গণনা করা যেতে পারে। গ্রাফিক্স প্রসেসিং ইউনিট (GPUs) হল হার্ডওয়্যার ইউনিট যা রেন্ডারিংকে ত্বরান্বিত করে এই সমস্যার সমাধান করে।

প্রয়োজনীয়তা

ত্বরিত গ্রাফিক্স মোডের জন্য হোস্টের থাকা প্রয়োজন:

  • EGL সক্ষম ড্রাইভার GL_KHR_surfaceless_context এক্সটেনশন সমর্থন করে
  • OpenGL ES সক্ষম ড্রাইভার
  • ভলকান দক্ষ ড্রাইভার

অ্যাক্সিলারেটেড গ্রাফিক্স মোড ব্যবহার করুন

জিএফএক্সস্ট্রিম

GfxStream অ্যাক্সিলারেটেড গ্রাফিক্স মোড ব্যবহার করতে, --gpu_mode=gfxstream পতাকা দিয়ে আপনার স্থানীয় কাটলফিশ ডিভাইস চালু করুন। এই মোড ব্যবহার করে, OpenGL এবং Vulkan API কল সরাসরি হোস্টে ফরোয়ার্ড করা হয়।

launch_cvd --gpu_mode=gfxstream

Virgl

Virgl অ্যাক্সিলারেটেড গ্রাফিক্স মোড ব্যবহার করতে, --gpu_mode=drm_virgl পতাকা দিয়ে আপনার স্থানীয় কাটলফিশ ডিভাইস চালু করুন।

launch_cvd --gpu_mode=drm_virgl

Virgl অ্যাক্সিলারেটেড গ্রাফিক্স মোড ব্যবহার করার সময়, OpenGL API কলগুলি একটি মধ্যবর্তী উপস্থাপনায় অনুবাদ করা হয় ( Gallium3D দেখুন)। মধ্যবর্তী উপস্থাপনাটি হোস্টের সাথে যোগাযোগ করা হয় এবং হোস্টের virglrenderer লাইব্রেরি মধ্যবর্তী উপস্থাপনাটিকে আবার OpenGL API কলে অনুবাদ করে।