Vulkan

Android-এ Vulkan কাজ করে, এটি হাই-পারফর্ম্যান্স 3D গ্রাফিক্সের জন্য লো-ওভারহেড, ক্রস-প্ল্যাটফর্ম API. OpenGL ES (GLES)-এর মতো, Vulkan অ্যাপে খুব ভাল কোয়ালিটির, রিয়েল-টাইম গ্রাফিক্স তৈরি করার জন্য টুল প্রদান করে। Vulkan ব্যবহার করার সুবিধার মধ্যে রয়েছে CPU ওভারহেড কমানো এবং SPIR-V বাইনারি ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ-এর জন্য সহায়তা।

GPU ইন্ডিপেন্ডেন্ট হার্ডওয়্যার ভেন্ডর (IHV)-এর মতো সিস্টেম-অন-চিপ (SoC) ভেন্ডররা, Android-এর জন্য Vulkan ড্রাইভার লেখেন। OEM নির্দিষ্ট ডিভাইসের জন্য এইসব ড্রাইভার ইন্টিগ্রেট করে। Vulkan ড্রাইভার কীভাবে সিস্টেমের সাথে ইন্টার‍্যাক্ট করে, GPU-নির্দিষ্ট টুল কীভাবে ইনস্টল করা হয় এবং Android-নির্দিষ্ট প্রয়োজনীয়তা সম্পর্কে আরও জানতে, Vulkan প্রয়োগ করা দেখুন।

অ্যাপ্লিকেশন ডেভেলপাররা এমন অ্যাপ তৈরি করতে Vulkan ব্যবহার করেন যা উল্লেখযোগ্যভাবে কমে যাওয়া ওভারহেড সহ GPU-তে কমান্ড এক্সিকিউট করে। এছাড়াও, Vulkan EGL ও GLES-এর তুলনায় বর্তমান গ্রাফিক্স হার্ডওয়্যারে পাওয়া ক্ষমতার আরও সরাসরি ম্যাপিং প্রদান করে, ড্রাইভার বাগের সম্ভাবনা কমায় এবং ডেভেলপার টেস্টিংয়ের সময় কমায়।

Vulkan সম্পর্কে সাধারণ তথ্য পেতে, Vulkan ওভারভিউ দেখুন অথবা রিসোর্সের তালিকা দেখুন।

Vulkan কম্পোনেন্ট

Vulkan-এর সাথে কাজ করে এমন কম্পোনেন্টগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত।

Vulkan
কম্পোনেন্ট

ছবি ১. Vulkan কম্পোনেন্ট

কম্পোনেন্টের নাম প্রদানকারী বর্ণনা
Vulkan ভ্যালিডেশন লেয়ার Android (NDK-তে) Vulkan API ব্যবহার করে অ্যাপে সমস্যা খুঁজে পেতে Vulkan অ্যাপ ডেভেলপ করার সময় ব্যবহৃত লাইব্রেরি। API ব্যবহার সংক্রান্ত সমস্যা খুঁজে পাওয়ার পরে, এইসব লাইব্রেরি সরিয়ে দেওয়া হয়।
Vulkan রানটাইম Android একটি নেটিভ লাইব্রেরি, libvulkan.so, যা নেটিভ Vulkan API প্রদান করে।

Vulkan রানটাইমের বেশিরভাগ কার্যকারিতা GPU ভেন্ডরের প্রদান করা ড্রাইভারের মাধ্যমে প্রয়োগ করা হয়। Vulkan রানটাইম ড্রাইভারকে র‍্যাপ করে, API ইন্টারসেপশন ক্ষমতা (ডিবাগিং এবং অন্যান্য ডেভেলপার টুলের জন্য) প্রদান করে এবং ড্রাইভার ও প্ল্যাটফর্ম ডিপেন্ডেন্সির মধ্যে ইন্টার‍্যাকশন ম্যানেজ করে।
Vulkan ড্রাইভার SoC হার্ডওয়্যার-নির্দিষ্ট GPU কমান্ড এবং কার্নেল গ্রাফিক্স ড্রাইভারের সাথে ইন্টার‍্যাকশনের উপর Vulkan API ম্যাপ করে।

পরিবর্তিত কম্পোনেন্ট

BufferQueue ও Gralloc-এ Vulkan কাজ করে:

  • BufferQueue. BufferQueue-তে অতিরিক্ত enum ভ্যালু ও পদ্ধতি এবং ANativeWindow ইন্টারফেস Vulkan রানটাইমকে ANativeWindow-এর মাধ্যমে BufferQueue-তে কানেক্ট করতে দেয়।
  • Gralloc. একটি ঐচ্ছিক ইন্টারফেস Gralloc-কে কোনও বাফার বরাদ্দ না করেই কোনও নির্দিষ্ট প্রযোজক/ভোক্তা সংমিশ্রণের জন্য প্রদত্ত ফর্ম্যাট ব্যবহার করা যেতে পারে কিনা তা খুঁজে বের করতে দেয়।

এইসব কম্পোনেন্ট সম্পর্কে আরও জানতে, BufferQueue এবং gralloc দেখুন। ANativeWindow সম্পর্কে বিস্তারিত জানতে, দেখুন EGLSurfaces এবং OpenGL ES।

রিসোর্স

Vulkan সম্পর্কে আরও জানতে নিম্নলিখিত রিসোর্স ব্যবহার করুন:

  • Vulkan Loader (libvulkan.so) at platform/frameworks/native/vulkan. এতে Android-এর Vulkan লোডার এবং প্ল্যাটফর্ম ডেভেলপারদের জন্য উপযোগী কিছু Vulkan-সম্পর্কিত টুল থাকে।
  • Vulkan প্রয়োগ করা। GPU IHV-এর জন্য তৈরি করা হয়েছে যারা Android-এর জন্য Vulkan ড্রাইভার লেখেন এবং OEM-রা নির্দিষ্ট ডিভাইসের জন্য সেইসব ড্রাইভার ইন্টিগ্রেট করেন। এটি বর্ণনা করে যে কীভাবে একটি Vulkan ড্রাইভার সিস্টেমের সাথে ইন্টার‍্যাক্ট করে, কীভাবে GPU-নির্দিষ্ট টুল ইনস্টল করতে হবে এবং Android-নির্দিষ্ট প্রয়োগ সংক্রান্ত প্রয়োজনীয়তা।
  • Vulkan Graphics API গাইড। Android অ্যাপে Vulkan ব্যবহার করা শুরু করা, Android-এর Vulkan ডিজাইন নির্দেশিকা প্ল্যাটফর্ম, Vulkan-এর শেডার কম্পাইলার ব্যবহার করা এবং Vulkan ব্যবহার করা অ্যাপে স্থিতিশীলতা নিশ্চিত করতে সাহায্য করার জন্য ভ্যালিডেশন লেয়ার ব্যবহার করা সংক্রান্ত তথ্য এতে অন্তর্ভুক্ত।
  • Vulkan সংক্রান্ত খবর। Vulkan-সম্পর্কিত ইভেন্ট, প্যাচ, টিউটোরিয়াল ও আরও অনেক খবর সম্পর্কিত নিবন্ধ কভার করে।