Vulkan

Android از Vulkan پشتیبانی می‌کند، یک API چندسکویی با سربار کم برای گرافیک سه‌بعدی با عملکرد بالا. Vulkan، مانند OpenGL ES (GLES)، ابزارهایی برای ایجاد گرافیک‌های هم‌زمان و باکیفیت بالا در برنامه‌ها ارائه می‌دهد. مزایای استفاده از Vulkan شامل کاهش سربار CPU و پشتیبانی از SPIR-V Binary Intermediate Language است.

فروشندگان سیستم روی تراشه (SoC)، مانند فروشندگان سخت‌افزار مستقل GPU (IHVs)، درایورهای Vulkan را برای Android می‌نویسند. تولیدکنندگان تجهیزات اصلی این گردانندگان را برای دستگاه‌های خاص ادغام می‌کنند. برای جزئیات مربوط به نحوه تعامل درایور Vulkan با سیستم، نحوه نصب ابزارهای مختص GPU، و الزامات مختص Android، به پیاده‌سازی Vulkan مراجعه کنید.

توسعه‌دهندگان برنامه از Vulkan برای ایجاد برنامه‌هایی استفاده می‌کنند که فرمان‌ها را در GPU با سربار بسیار کمتری اجرا می‌کنند. Vulkan همچنین در مقایسه با EGL و GLES، نگاشت مستقیم‌تری برای قابلیت‌های موجود در سخت‌افزار گرافیک فعلی ارائه می‌دهد و فرصت‌های بروز اشکالات درایور را به حداقل می‌رساند و زمان آزمایش توسعه‌دهنده را کاهش می‌دهد.

برای اطلاعات کلی درباره Vulkan، به نمای کلی Vulkan مراجعه کنید یا فهرست منابع را ببینید.

اجزای Vulkan

پشتیبانی از Vulkan شامل اجزای زیر می‌شود.

اجزای
Vulkan

شکل ۱. عناصر Vulkan

نام مؤلفه ارائه‌دهنده شرح
لایه‌های اعتبارسنجی Vulkan ‫Android (در NDK) کتابخانه‌هایی که درطول توسعه برنامه‌های Vulkan برای یافتن خطا در استفاده برنامه از Vulkan API استفاده می‌شوند. پس‌از پیدا شدن خطاهای استفاده از API، این کتابخانه‌ها برداشته می‌شوند.
Vulkan Runtime Android کتابخانه بومی، libvulkan.so، که Vulkan API بومی ارائه می‌دهد.

بیشتر عملکردهای «زمان اجرای Vulkan» توسط درایوری که توسط فروشنده واحد پردازش گرافیکی ارائه می‌شود پیاده‌سازی می‌شود. Vulkan Runtime درایور را بسته‌بندی می‌کند، قابلیت‌های رهگیری میانای برنامه‌سازی کاربردی (برای اشکال‌زدایی و سایر ابزارهای توسعه‌دهنده) را ارائه می‌دهد، و تعامل بین درایور و وابستگی‌های پلاتفرم را مدیریت می‌کند.
Vulkan Driver سیستم روی تراشه|SoC میانای برنامه‌سازی کاربردی Vulkan را روی فرمان‌ها و تعاملات سخت‌افزاری مختص GPU با درایور گرافیک هسته نگاشت می‌کند.

اجزای اصلاح‌شده

BufferQueue و Gralloc از Vulkan پشتیبانی می‌کنند:

  • BufferQueue. مقادیر و روش‌های شمارشی اضافی در BufferQueue و رابط ANativeWindow به «زمان اجرای Vulkan» امکان می‌دهد ازطریق ANativeWindow به BufferQueue متصل شود.
  • Gralloc. واسط اختیاری به Gralloc امکان می‌دهد بدون تخصیص بافر، متوجه شود که آیا می‌توان از قالب معینی برای ترکیب تولیدکننده/مصرف‌کننده خاصی استفاده کرد یا نه.

برای جزئیات مربوط به این مؤلفه‌ها، به BufferQueue و gralloc مراجعه کنید. برای جزئیات مربوط به ANativeWindow، به EGLSurfaces و OpenGL ES مراجعه کنید.

منابع

برای کسب اطلاعات بیشتر درباره Vulkan، از منابع زیر استفاده کنید:

  • بارکننده Vulkan (libvulkan.so) در platform/frameworks/native/vulkan. حاوی بارکننده Vulkan در Android و همچنین برخی ابزارهای مرتبط با Vulkan است که برای توسعه‌دهندگان پلاتفرم مفید است.
  • پیاده‌سازی Vulkan. برای IHVهای GPU که درایورهای Vulkan برای Android می‌نویسند و OEMهایی که آن درایورها را برای دستگاه‌های خاص ادغام می‌کنند درنظر گرفته شده است. این سند نحوه تعامل درایور Vulkan با سیستم، نحوه نصب ابزارهای خاص GPU، و الزامات پیاده‌سازی خاص Android را شرح می‌دهد.
  • راهنمای Vulkan Graphics API. شامل اطلاعاتی درباره شروع کار با Vulkan در برنامه‌های Android، رهنمودهای طراحی پلاتفرم Android برای Vulkan، استفاده از گردآورنده‌های سایه‌زن Vulkan، و استفاده از لایه‌های درستی‌سنجی برای کمک به اطمینان از پایداری در برنامه‌هایی که از Vulkan استفاده می‌کنند.
  • Vulkan News. رویدادها، وصله‌ها، آموزش‌های گام‌به‌گام، و مقاله‌های خبری مرتبط با Vulkan را پوشش می‌دهد.