কাটলফিশের অ্যাক্সিলারেটেড গ্রাফিক্স মোড আপনার হোস্ট মেশিনের ফিজিক্যাল গ্রাফিক্স প্রসেসিং ইউনিট (GPU) ব্যবহার করে রেন্ডারিং করে। এটি গেস্ট রেন্ডারিং কমান্ডগুলোকে আপনার হোস্ট মেশিনে পাঠায়, হোস্ট মেশিনে সেই রেন্ডারিং কমান্ডগুলো চালায় এবং রেন্ডার করা ফলাফল গেস্টের কাছে ফেরত পাঠায়।
অ্যান্ড্রয়েড ১১ বা তার উচ্চতর সংস্করণে চালিত একটি কাটলফিশ ডিভাইস অ্যাক্সিলারেটেড গ্রাফিক্স শনাক্ত করে এবং ব্যবহার করে। যদি হোস্ট মেশিন অ্যাক্সিলারেটেড গ্রাফিক্স সমর্থন না করে অথবা অ্যান্ড্রয়েড সংস্করণটি অ্যান্ড্রয়েড ১০ বা তার নিম্নতর হয়, তবে আপনার কাটলফিশ ডিভাইসে গেস্ট-সাইড রেন্ডারিং (উদাহরণস্বরূপ, UI এবং ভিডিও প্লেব্যাক) সুইফটশেডার দ্বারা পরিচালিত হয়। সুইফটশেডার হলো OpenGL এবং Vulkan API-এর একটি সফটওয়্যার ইমপ্লিমেন্টেশন। যেহেতু সুইফটশেডার একটি সফটওয়্যার ইমপ্লিমেন্টেশন, তাই এটি কাটলফিশের জন্য একটি সর্বজনীনভাবে ব্যবহারযোগ্য রেন্ডারিং সমাধান প্রদান করে, যা যেকোনো হোস্ট মেশিনে চলতে সক্ষম।
তবে, SwiftShader ব্যবহার করা একটি সাধারণ ডিভাইসের মতো ততটা কর্মদক্ষ নয়। রেন্ডারিং একটি সমান্তরাল সমস্যা যা ব্যাপকভাবে সমান্তরাল করা যেতে পারে, কারণ পিক্সেলের মান স্বাধীনভাবে গণনা করা যায়। গ্রাফিক্স প্রসেসিং ইউনিট (GPU) হলো এমন হার্ডওয়্যার ইউনিট যা রেন্ডারিং-এর গতি বাড়িয়ে এই সমস্যার সমাধান করে।
প্রয়োজনীয়তা
অ্যাক্সিলারেটেড গ্রাফিক্স মোডের জন্য হোস্টে নিম্নলিখিত বিষয়গুলো থাকা আবশ্যক:
-
GL_KHR_surfaceless_contextএক্সটেনশন সমর্থনকারী EGL সক্ষম ড্রাইভার - OpenGL ES সক্ষম ড্রাইভার
- ভলকান সক্ষম চালক
ত্বরান্বিত গ্রাফিক্স মোড ব্যবহার করুন
জিএফএক্সস্ট্রিম
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 কলগুলিকে একটি অন্তর্বর্তী উপস্থাপনায় (intermediate representation) রূপান্তরিত করা হয় (দেখুন Gallium3D )। এই অন্তর্বর্তী উপস্থাপনাটি হোস্টে পাঠানো হয় এবং হোস্টে থাকা virglrenderer লাইব্রেরি সেটিকে পুনরায় OpenGL API কলে অনুবাদ করে।