اندروید از Vulkan ، یک API چند پلتفرمی با سربار کم برای گرافیکهای سهبعدی با کارایی بالا، پشتیبانی میکند. Vulkan مانند OpenGL ES (GLES) ، ابزارهایی برای ایجاد گرافیکهای با کیفیت بالا و بلادرنگ در برنامهها ارائه میدهد. مزایای استفاده از Vulkan شامل کاهش سربار CPU و پشتیبانی از زبان میانی دودویی SPIR-V است.
فروشندگان سیستم روی تراشه (SoC)، مانند فروشندگان سختافزار مستقل از GPU (IHV)، درایورهای Vulkan را برای اندروید مینویسند. تولیدکنندگان اصلی تجهیزات (OEM) این درایورها را برای دستگاههای خاص ادغام میکنند. برای جزئیات بیشتر در مورد نحوه تعامل درایور Vulkan با سیستم، نحوه نصب ابزارهای مخصوص GPU و الزامات مخصوص اندروید، به بخش پیادهسازی Vulkan مراجعه کنید.
توسعهدهندگان برنامهها از Vulkan برای ایجاد برنامههایی استفاده میکنند که دستورات را روی GPU با سربار (overhead) بسیار کاهشیافته اجرا میکنند. Vulkan همچنین در مقایسه با EGL و GLES، نگاشت مستقیمتری به قابلیتهای موجود در سختافزار گرافیکی فعلی ارائه میدهد و احتمال بروز اشکالات درایور را به حداقل میرساند و زمان آزمایش توسعهدهندگان را کاهش میدهد.
برای اطلاعات عمومی در مورد Vulkan، به نمای کلی Vulkan یا فهرست منابع مراجعه کنید.
اجزای ولکان
پشتیبانی از Vulkan شامل اجزای زیر میشود.
شکل ۱. اجزای ولکان
نام کامپوننت | ارائه دهنده | توضیحات |
---|---|---|
لایههای اعتبارسنجی ولکان | اندروید (در NDK) | کتابخانههایی که در طول توسعه برنامههای Vulkan برای یافتن خطاها در استفاده یک برنامه از API Vulkan استفاده میشوند. پس از یافتن خطاهای استفاده از API، این کتابخانهها حذف میشوند. |
زمان اجرا ولکان | اندروید | یک کتابخانه بومی، libvulkan.so ، که یک API بومی Vulkan ارائه میدهد.بیشتر قابلیتهای Vulkan Runtime توسط درایوری که توسط فروشنده GPU ارائه میشود، پیادهسازی میشود. Vulkan Runtime درایور را در بر میگیرد، قابلیتهای رهگیری API (برای اشکالزدایی و سایر ابزارهای توسعهدهنده) را فراهم میکند و تعامل بین درایور و وابستگیهای پلتفرم را مدیریت میکند. |
درایور ولکان | تراشه | رابط برنامهنویسی کاربردی Vulkan را بر روی دستورات GPU مخصوص سختافزار و تعاملات با درایور گرافیکی هسته نگاشت میکند. |
اجزای اصلاحشده
BufferQueue و Gralloc از Vulkan پشتیبانی میکنند:
- BufferQueue. مقادیر و متدهای شمارشی اضافی در BufferQueue و رابط
ANativeWindow
، Vulkan Runtime را قادر میسازد تا از طریقANativeWindow
به BufferQueue متصل شود. - Gralloc. یک رابط اختیاری به Gralloc اجازه میدهد تا کشف کند که آیا یک فرمت مشخص میتواند برای یک ترکیب تولیدکننده/مصرفکننده خاص بدون تخصیص بافر استفاده شود یا خیر.
برای جزئیات بیشتر در مورد این اجزا، به BufferQueue و gralloc مراجعه کنید. برای جزئیات بیشتر در مورد ANativeWindow
، به EGLSurfaces و OpenGL ES مراجعه کنید.
منابع
برای کسب اطلاعات بیشتر در مورد Vulkan از منابع زیر استفاده کنید:
- لودر Vulkan (
libvulkan.so
) درplatform/frameworks/native/vulkan
. شامل لودر Vulkan اندروید و همچنین برخی از ابزارهای مرتبط با Vulkan است که برای توسعهدهندگان پلتفرم مفید است. - پیادهسازی Vulkan . این بخش برای GPU IHVها در نظر گرفته شده است که درایورهای Vulkan را برای اندروید مینویسند و OEMها این درایورها را برای دستگاههای خاص ادغام میکنند. این بخش نحوه تعامل درایور Vulkan با سیستم، نحوه نصب ابزارهای مخصوص GPU و الزامات پیادهسازی مخصوص اندروید را شرح میدهد.
- راهنمای API گرافیکی Vulkan . شامل اطلاعاتی در مورد شروع به کار با Vulkan در برنامههای اندروید، پلتفرم دستورالعملهای طراحی Vulkan اندروید، استفاده از کامپایلرهای سایهزن Vulkan و استفاده از لایههای اعتبارسنجی برای کمک به تضمین پایداری در برنامههایی که از Vulkan استفاده میکنند.
- اخبار ولکان . رویدادها، پچها، آموزشها و سایر مقالات خبری مرتبط با ولکان را پوشش میدهد.