اشکال زداها
اشکال زدایی با لایه اعتبار سنجی
Vulkan برای عملکرد بالا و سربار پایین راننده طراحی شده است. برای دستیابی به این هدف، به طور پیشفرض فقط شامل قابلیتهای بسیار محدودی برای بررسی خطا و اشکالزدایی میشود. اگر اشتباهی انجام دهید، درایور اغلب به جای بازگرداندن کد خطا از کار می افتد، یا حتی بدتر از آن، به نظر می رسد که روی کارت گرافیک شما کار می کند اما در سایرین کاملاً از کار می افتد.
برای فعال کردن بررسیهای گسترده در طول توسعه، Vulkan لایههای اعتبارسنجی را ارائه میکند، که قطعات کدی هستند که میتوانند بین API و درایور گرافیک درج شوند تا کارهایی مانند اجرای بررسیهای اضافی روی پارامترهای عملکرد و ردیابی مشکلات مدیریت حافظه را انجام دهند. میتوانید لایههای اعتبارسنجی را در حین توسعه فعال کنید و هنگام انتشار برنامهتان با سربار صفر، آنها را کاملاً غیرفعال کنید.
لایه های اعتبار سنجی می تواند توسط هر کسی نوشته شود، اما Khronos یک مجموعه استاندارد واحد به نام VK_LAYER_KHRONOS_validation
را ارائه می دهد. لایه های اعتبار سنجی Vulkan را در Android از صفحه Android NDK بررسی کنید تا لایه اعتبار سنجی را در برنامه خود فعال کنید.
RenderDoc
RenderDoc یکی دیگر از ابزارهای منبع باز قدرتمند است که به شما امکان می دهد از یک فریم برای بازرسی و تجزیه و تحلیل عکس بگیرید. این یک ابزار بسیار قدرتمند است که توسط برنامه نویسان گرافیک برای اشکال زدایی صحنه های رندر شده خود استفاده شده است. این برنامه از Vulkan در اندروید به خوبی پشتیبانی می کند، اگرچه برنامه شما باید به عنوان اشکال زدایی تنظیم شود تا کار کند.
برای کسب اطلاعات در مورد نحوه تنظیم و استفاده از آن در برنامه Android خود، بررسی کنید چگونه از RenderDoc در Android استفاده کنم .
ضبط / پخش مجدد کتابخانه ها
GFXReconstruct
GFXReconstruct یک پروژه متن باز است که ابزارهایی را برای ضبط و پخش مجدد فراخوان های گرافیکی API اجرا شده توسط یک برنامه ارائه می دهد. ردیابی ضبط شده می تواند بعداً برای بازسازی رفتار گرافیکی خاص برنامه ضبط شده مجدداً پخش شود. یکی از مزایای اصلی GFXReconstruct این است که به شما امکان می دهد از آن در برنامه منتشر شده خود استفاده کنید (زمانی که android:debuggable را خاموش کرده باشید).
برای اطلاعات بیشتر به مخزن پروژه مراجعه کنید. اطلاعات راهاندازی و استفاده از Vulkan در Android در GFXReconstruct API Capture and Replay برای Android موجود است.
توجه داشته باشید که فایلهای ردیابی قابل حمل نیستند، به این معنی که نمیتوانید فایل را روی یک دستگاه ضبط کنید و آن را در دستگاه دیگری (با نسخههای سیستمعامل، چیپستها یا حتی نسخه درایورهای مختلف) دوباره پخش کنید.
پروفایلرها
بازرس GPU Android (AGI)
Android GPU Inspector (AGI) یک نمایه گر گرافیکی است که برای اندروید ساخته شده است که شامل یک نمایه سیستم و یک نمایه فریم است. این اطلاعات پروفایل سطح بالایی را ارائه می دهد که به شما امکان می دهد مشخصات عملکرد بازی خود را درک کنید و گلوگاه ها را شناسایی کنید.
برای دانلود AGI و یادگیری نحوه استفاده از آن، به وب سایت Android GPU Inspector مراجعه کنید.
پروفایل اندروید استودیو
Android Studio Profiler یک ابزار مفید برای پروفایل عملکرد برنامه شما است. با این حال، به طور خاص برای پروفایل گرافیکی طراحی نشده است. این شامل مشخصات CPU، نمایه حافظه، نمایه شبکه، پروفیل انرژی، پروفیل برق و مانیتور رویداد است.
برای اطلاعات بیشتر درباره نحوه راهاندازی و استفاده از Android Studio Profiler، بخش عملکرد برنامه خود را نمایه کنید.
مشخصات OEM
ابزارهای این بخش مختص OEM هستند و ممکن است روی دستگاههایی که روی تراشههای دیگر کار میکنند کار نکنند.
ARM Performance Studio برای موبایل
Arm Performance Studio for Mobile نام جدید Arm Mobile Studio است. این مجموعه ابزارهایی است که شامل Graphics Analyzer و Frame Advisor میشود تا به شما در شناسایی و رفع مشکلات عملکرد پردازندههای گرافیکی ARM کمک کند.
برای اطلاعات بیشتر، وب سایت Arm Performance Studio for Mobile را بررسی کنید.
ARM PerfDoc برای پردازندههای گرافیکی مالی
PerfDoc یک لایه Vulkan است که برای اعتبارسنجی برنامهها در برابر بهترین شیوههای GPU Mali ARM توسعه یافته است. از آن زمان به بعد در VK_LAYER_KHRONOS_validation ادغام شد و اساساً بخشی از لایههای اعتبارسنجی استاندارد Vulkan است.
برای اطلاعات در مورد نحوه استفاده از آن، بخش Debugging with validation layer را بررسی کنید.
پروفایل کوالکام اسنپدراگون
Qualcomm Snapdragon Profiler یک نرم افزار پروفایل است که توسط Qualcomm برای توسعه دهندگان برنامه توسعه یافته است تا CPU، GPU، DSP، حافظه، قدرت، حرارت و عملکرد شبکه را برای شناسایی تنگناها در چیپست های خود تجزیه و تحلیل کنند.
برای اطلاعات بیشتر، Snapdragon Profiler را در شبکه توسعهدهنده Qualcomm بررسی کنید.
GPUWatch سامسونگ
GPUWatch سامسونگ ابزاری برای مشاهده فعالیت GPU در دستگاه های سامسونگ است. برخلاف سایر ابزارها، میتوانید از این ابزار مستقیماً از دستگاه تلفن همراه خود استفاده کنید، بنابراین بررسی عملکرد برنامه خود حتی زمانی که به رایانه میزبان دیگری دسترسی ندارید بسیار مفید است.
برای اطلاعات بیشتر در مورد نحوه فعال کردن آن، راهنمای کاربر را بررسی کنید.
PVRTune
PVRTune Imagination Technologies به توسعه دهندگان این امکان را می دهد تا برنامه های کاربردی را روی سخت افزار PowerVR در زمان واقعی با طیف گسترده ای از شمارنده ها و معیارها نمایه کنند. همچنین اجازه می دهد تا جلسه برای تجزیه و تحلیل بیشتر در سطح پایین و شناسایی تنگناهای عملکرد ذخیره شود.
برای اطلاعات بیشتر در مورد نحوه استفاده از PVRTune، دفترچه راهنما را بررسی کنید.
ابزارهای مهاجرت
تبدیل شیدرها از GLSL به SPIR-V
Vulkan API انتظار دارد که برنامه های سایه زن در قالب دودویی میانی SPIR-V ارائه شوند. این قرارداد با OpenGL ES متفاوت است، جایی که میتوانید کد منبع نوشته شده در زبان سایهاندازی OpenGL (GLSL) را به عنوان رشتههای متنی ارسال کنید.
NDK r12 و جدیدتر شامل یک کتابخانه زمان اجرا برای کامپایل سایه زن های GLSL در SPIR-V است که می تواند توسط Vulkan استفاده شود. از کامپایلر shaderc می توان برای کامپایل برنامه های سایه زن نوشته شده در GLSL در SPIR-V استفاده کرد. اگر بازی شما از HLSL استفاده می کند، DirectXShaderCompiler از خروجی SPIR-V پشتیبانی می کند.
به طور معمول، شما باید برنامه های سایه زن را به صورت آفلاین به عنوان بخشی از فرآیند ساخت دارایی برای بازی خود کامپایل کنید و ماژول های SPIR-V را به عنوان بخشی از دارایی های زمان اجرا خود بگنجانید.
برای اطلاعات بیشتر در مورد فرآیند کامپایل سایه زن برای برنامه Vulkan خود، کامپایلرهای سایه زن Vulkan را در Android در بخش Android NDK بررسی کنید.
ویژگی های پیشرفته
Android Frame Pacing را در رندر Vulkan خود ادغام کنید
کتابخانه Android Frame Pacing (همچنین با نام Swappy شناخته میشود) به بازیهای Vulkan کمک میکند تا به رندرینگ صاف و ریتم صحیح دست یابند تا حلقه رندر بازی با زیرسیستم نمایشگر سیستمعامل و سختافزار نمایشگر زیرین همگام شود.
قدم زدن صحیح، مصنوعات بصری معروف به پارگی را حذف میکند، مصرف انرژی را از طریق همگامسازی بین تازهسازی نمایشگر و نمایش فریم بهینه میکند، و همچنین با تثبیت نرخ فریم، ناهنجاریها را از بین میبرد. برای کسب اطلاعات بیشتر در مورد اهمیت سرعت قاب، بخش Frame Pacing Library AGDK را بررسی کنید.
برای اطلاعات بیشتر در مورد نحوه ادغام سرعت فریم در بازی خود، ادغام سرعت فریم اندروید را در رندر Vulkan خود بررسی کنید.
جهت گیری دستگاه را با پیش چرخش Vulkan کنترل کنید
دست زدن به چرخش سطح در خارج از برنامه ممکن است رایگان نباشد. حتی در برخی از دستگاههای پیشرفته با واحد پردازش نمایشگر اختصاصی (DPU)، همچنان احتمالاً جریمه عملکرد قابل اندازهگیری برای پرداخت وجود خواهد داشت و تأثیر آن بستگی به این دارد که برنامه شما محدود به CPU باشد یا محدود به GPU.
Vulkan به توسعه دهندگان این قدرت را می دهد تا اطلاعات بسیار بیشتری را در مورد وضعیت رندر در مقایسه با OpenGL به دستگاه ها مشخص کنند. یکی از این اطلاعات جهت گیری دستگاه و رابطه آن با جهت گیری سطحی رندر است. این قابلیت به شما امکان می دهد پیش چرخش را پیاده سازی کنید تا بیشترین بهره را از Vulkan در اندروید ببرید.
برای اطلاعات بیشتر در مورد نحوه مدیریت کارآمد چرخش دستگاه در برنامه Vulkan خود، جهت گیری دستگاه را با پیش چرخش Vulkan و برنامه نمایشی همراه آن بررسی کنید.
بهینه سازی با دقت کمتر
فرمت عددی داده های گرافیکی و محاسبات شیدر می تواند تاثیر بسزایی در عملکرد بازی شما داشته باشد. اکثر محاسبات و داده ها در گرافیک سه بعدی مدرن از اعداد ممیز شناور استفاده می کنند. Vulkan در اندروید از اعداد ممیز شناور استفاده می کند که اندازه آنها 32 یا 16 بیت است. یک عدد ممیز شناور 32 بیتی معمولاً با دقت تک یا دقت کامل شناخته می شود. اگرچه نوع ممیز شناور 64 بیتی در Vulkan تعریف شده است، اما معمولاً پشتیبانی نمی شود و استفاده از آن توصیه نمی شود.
برای اطلاعاتی در مورد نحوه بهینه سازی برنامه Vulkan برای بهترین عملکرد در محاسبات خود ، Optimize با دقت کم را بررسی کنید.
،اشکال زداها
اشکال زدایی با لایه اعتبار سنجی
Vulkan برای عملکرد بالا و سربار پایین راننده طراحی شده است. برای دستیابی به این هدف، به طور پیشفرض فقط شامل قابلیتهای بسیار محدودی برای بررسی خطا و اشکالزدایی میشود. اگر اشتباهی انجام دهید، درایور اغلب به جای بازگرداندن کد خطا از کار می افتد، یا حتی بدتر از آن، به نظر می رسد که روی کارت گرافیک شما کار می کند اما در سایرین کاملاً از کار می افتد.
برای فعال کردن بررسیهای گسترده در طول توسعه، Vulkan لایههای اعتبارسنجی را ارائه میکند، که قطعات کدی هستند که میتوانند بین API و درایور گرافیک درج شوند تا کارهایی مانند اجرای بررسیهای اضافی روی پارامترهای عملکرد و ردیابی مشکلات مدیریت حافظه را انجام دهند. میتوانید لایههای اعتبارسنجی را در حین توسعه فعال کنید و هنگام انتشار برنامهتان با سربار صفر، آنها را کاملاً غیرفعال کنید.
لایه های اعتبار سنجی می تواند توسط هر کسی نوشته شود، اما Khronos یک مجموعه استاندارد واحد به نام VK_LAYER_KHRONOS_validation
را ارائه می دهد. لایه های اعتبار سنجی Vulkan را در Android از صفحه Android NDK بررسی کنید تا لایه اعتبار سنجی را در برنامه خود فعال کنید.
RenderDoc
RenderDoc یکی دیگر از ابزارهای منبع باز قدرتمند است که به شما امکان می دهد از یک فریم برای بازرسی و تجزیه و تحلیل عکس بگیرید. این یک ابزار بسیار قدرتمند است که توسط برنامه نویسان گرافیک برای اشکال زدایی صحنه های رندر شده خود استفاده شده است. این برنامه از Vulkan در اندروید به خوبی پشتیبانی می کند، اگرچه برنامه شما باید به عنوان اشکال زدایی تنظیم شود تا کار کند.
برای کسب اطلاعات در مورد نحوه تنظیم و استفاده از آن در برنامه Android خود، بررسی کنید چگونه از RenderDoc در Android استفاده کنم .
ضبط / پخش مجدد کتابخانه ها
GFXReconstruct
GFXReconstruct یک پروژه متن باز است که ابزارهایی را برای ضبط و پخش مجدد فراخوان های گرافیکی API اجرا شده توسط یک برنامه ارائه می دهد. ردیابی ضبط شده می تواند بعداً برای بازسازی رفتار گرافیکی خاص برنامه ضبط شده مجدداً پخش شود. یکی از مزایای اصلی GFXReconstruct این است که به شما امکان می دهد از آن در برنامه منتشر شده خود استفاده کنید (زمانی که android:debuggable را خاموش کرده باشید).
برای اطلاعات بیشتر به مخزن پروژه مراجعه کنید. اطلاعات راهاندازی و استفاده از Vulkan در Android در GFXReconstruct API Capture and Replay برای Android موجود است.
توجه داشته باشید که فایلهای ردیابی قابل حمل نیستند، به این معنی که نمیتوانید فایل را روی یک دستگاه ضبط کنید و آن را در دستگاه دیگری (با نسخههای سیستمعامل، چیپستها یا حتی نسخه درایورهای مختلف) دوباره پخش کنید.
پروفایلرها
بازرس GPU Android (AGI)
Android GPU Inspector (AGI) یک نمایه گر گرافیکی است که برای اندروید ساخته شده است که شامل یک نمایه سیستم و یک نمایه فریم است. این اطلاعات پروفایل سطح بالایی را ارائه می دهد که به شما امکان می دهد مشخصات عملکرد بازی خود را درک کنید و گلوگاه ها را شناسایی کنید.
برای دانلود AGI و یادگیری نحوه استفاده از آن، به وب سایت Android GPU Inspector مراجعه کنید.
نمایه استودیو اندروید
Android Studio Profiler یک ابزار مفید برای پروفایل عملکرد برنامه شما است. با این حال، به طور خاص برای پروفایل گرافیکی طراحی نشده است. این شامل مشخصات CPU، نمایه حافظه، نمایه شبکه، پروفیل انرژی، پروفیل برق و مانیتور رویداد است.
برای اطلاعات بیشتر در مورد نحوه راه اندازی و استفاده از Android Studio Profiler، بخش عملکرد برنامه خود را نمایه کنید.
مشخصات OEM
ابزارهای این بخش مختص OEM هستند و ممکن است روی دستگاههایی که روی تراشههای دیگر کار میکنند کار نکنند.
ARM Performance Studio برای موبایل
Arm Performance Studio for Mobile نام جدید Arm Mobile Studio است. این مجموعه ابزارهایی است که شامل Graphics Analyzer و Frame Advisor میشود تا به شما در شناسایی و رفع مشکلات عملکرد پردازندههای گرافیکی ARM کمک کند.
برای اطلاعات بیشتر، وب سایت Arm Performance Studio for Mobile را بررسی کنید.
ARM PerfDoc برای پردازندههای گرافیکی مالی
PerfDoc یک لایه Vulkan است که برای اعتبارسنجی برنامهها در برابر بهترین شیوههای GPU Mali ARM توسعه یافته است. از آن زمان به بعد در VK_LAYER_KHRONOS_validation ادغام شد و اساساً بخشی از لایههای اعتبارسنجی استاندارد Vulkan است.
برای اطلاعات در مورد نحوه استفاده از آن، بخش Debugging with validation layer را بررسی کنید.
پروفایل کوالکام اسنپدراگون
Qualcomm Snapdragon Profiler یک نرم افزار پروفایل است که توسط Qualcomm برای توسعه دهندگان برنامه توسعه یافته است تا CPU، GPU، DSP، حافظه، قدرت، حرارت و عملکرد شبکه را برای شناسایی تنگناها در چیپست های خود تجزیه و تحلیل کنند.
برای اطلاعات بیشتر، Snapdragon Profiler را در شبکه توسعهدهنده Qualcomm بررسی کنید.
GPUWatch سامسونگ
GPUWatch سامسونگ ابزاری برای مشاهده فعالیت GPU در دستگاه های سامسونگ است. برخلاف سایر ابزارها، میتوانید از این ابزار مستقیماً از دستگاه تلفن همراه خود استفاده کنید، بنابراین بررسی عملکرد برنامه خود حتی زمانی که به رایانه میزبان دیگری دسترسی ندارید بسیار مفید است.
برای اطلاعات بیشتر در مورد نحوه فعال کردن آن، راهنمای کاربر را بررسی کنید.
PVRTune
PVRTune Imagination Technologies به توسعه دهندگان این امکان را می دهد تا برنامه های کاربردی را روی سخت افزار PowerVR در زمان واقعی با طیف گسترده ای از شمارنده ها و معیارها نمایه کنند. همچنین اجازه می دهد تا جلسه برای تجزیه و تحلیل بیشتر در سطح پایین و شناسایی تنگناهای عملکرد ذخیره شود.
برای اطلاعات بیشتر در مورد نحوه استفاده از PVRTune، دفترچه راهنما را بررسی کنید.
ابزارهای مهاجرت
تبدیل شیدرها از GLSL به SPIR-V
Vulkan API انتظار دارد که برنامه های سایه زن در قالب دودویی میانی SPIR-V ارائه شوند. این قرارداد با OpenGL ES متفاوت است، جایی که میتوانید کد منبع نوشته شده در زبان سایهاندازی OpenGL (GLSL) را به عنوان رشتههای متنی ارسال کنید.
NDK r12 و جدیدتر شامل یک کتابخانه زمان اجرا برای کامپایل سایه زن های GLSL در SPIR-V است که می تواند توسط Vulkan استفاده شود. از کامپایلر shaderc می توان برای کامپایل برنامه های سایه زن نوشته شده در GLSL در SPIR-V استفاده کرد. اگر بازی شما از HLSL استفاده می کند، DirectXShaderCompiler از خروجی SPIR-V پشتیبانی می کند.
به طور معمول، شما باید برنامه های سایه زن را به صورت آفلاین به عنوان بخشی از فرآیند ساخت دارایی برای بازی خود کامپایل کنید و ماژول های SPIR-V را به عنوان بخشی از دارایی های زمان اجرا خود بگنجانید.
برای اطلاعات بیشتر در مورد فرآیند کامپایل سایه زن برای برنامه Vulkan خود، کامپایلرهای سایه زن Vulkan را در Android در بخش Android NDK بررسی کنید.
ویژگی های پیشرفته
Android Frame Pacing را در رندر Vulkan خود ادغام کنید
کتابخانه Android Frame Pacing (همچنین با نام Swappy شناخته میشود) به بازیهای Vulkan کمک میکند تا به رندرینگ صاف و ریتم صحیح دست یابند تا حلقه رندر بازی با زیرسیستم نمایشگر سیستمعامل و سختافزار نمایشگر زیرین همگام شود.
قدم زدن صحیح، مصنوعات بصری معروف به پارگی را حذف میکند، مصرف انرژی را از طریق همگامسازی بین تازهسازی نمایشگر و نمایش فریم بهینه میکند، و همچنین با تثبیت نرخ فریم، ناهنجاریها را از بین میبرد. برای کسب اطلاعات بیشتر در مورد اهمیت سرعت قاب، بخش Frame Pacing Library AGDK را بررسی کنید.
برای اطلاعات بیشتر در مورد نحوه ادغام سرعت فریم در بازی خود، ادغام سرعت فریم اندروید را در رندر Vulkan خود بررسی کنید.
جهت گیری دستگاه را با پیش چرخش Vulkan کنترل کنید
دست زدن به چرخش سطح در خارج از برنامه ممکن است رایگان نباشد. حتی در برخی از دستگاههای پیشرفته با واحد پردازش نمایشگر اختصاصی (DPU)، همچنان احتمالاً جریمه عملکرد قابل اندازهگیری برای پرداخت وجود خواهد داشت و تأثیر آن بستگی به این دارد که برنامه شما محدود به CPU باشد یا محدود به GPU.
Vulkan به توسعه دهندگان این قدرت را می دهد تا اطلاعات بسیار بیشتری را در مورد وضعیت رندر در مقایسه با OpenGL به دستگاه ها مشخص کنند. یکی از این اطلاعات جهت گیری دستگاه و رابطه آن با جهت گیری سطحی رندر است. این قابلیت به شما امکان می دهد پیش چرخش را پیاده سازی کنید تا بیشترین بهره را از Vulkan در اندروید ببرید.
برای اطلاعات بیشتر در مورد نحوه مدیریت کارآمد چرخش دستگاه در برنامه Vulkan خود، جهت گیری دستگاه را با پیش چرخش Vulkan و برنامه نمایشی همراه آن بررسی کنید.
بهینه سازی با دقت کمتر
فرمت عددی داده های گرافیکی و محاسبات شیدر می تواند تاثیر بسزایی در عملکرد بازی شما داشته باشد. اکثر محاسبات و داده ها در گرافیک سه بعدی مدرن از اعداد ممیز شناور استفاده می کنند. Vulkan در اندروید از اعداد ممیز شناور استفاده می کند که اندازه آنها 32 یا 16 بیت است. یک عدد ممیز شناور 32 بیتی معمولاً با دقت تک یا دقت کامل شناخته می شود. اگرچه نوع ممیز شناور 64 بیتی در Vulkan تعریف شده است، اما معمولاً پشتیبانی نمی شود و استفاده از آن توصیه نمی شود.
برای اطلاعاتی در مورد نحوه بهینه سازی برنامه Vulkan برای بهترین عملکرد در محاسبات خود ، Optimize با دقت کم را بررسی کنید.
،اشکال زداها
اشکال زدایی با لایه اعتبار سنجی
Vulkan برای عملکرد بالا و سربار پایین راننده طراحی شده است. برای دستیابی به این هدف، به طور پیشفرض فقط شامل قابلیتهای بسیار محدودی برای بررسی خطا و اشکالزدایی میشود. اگر اشتباهی انجام دهید، درایور اغلب به جای بازگرداندن کد خطا از کار می افتد، یا حتی بدتر از آن، به نظر می رسد که روی کارت گرافیک شما کار می کند اما در سایرین کاملاً از کار می افتد.
برای فعال کردن بررسیهای گسترده در طول توسعه، Vulkan لایههای اعتبارسنجی را ارائه میکند، که قطعات کدی هستند که میتوانند بین API و درایور گرافیک درج شوند تا کارهایی مانند اجرای بررسیهای اضافی روی پارامترهای عملکرد و ردیابی مشکلات مدیریت حافظه را انجام دهند. میتوانید لایههای اعتبارسنجی را در حین توسعه فعال کنید و هنگام انتشار برنامهتان با سربار صفر، آنها را کاملاً غیرفعال کنید.
لایه های اعتبار سنجی می تواند توسط هر کسی نوشته شود، اما Khronos یک مجموعه استاندارد واحد به نام VK_LAYER_KHRONOS_validation
را ارائه می دهد. لایه های اعتبار سنجی Vulkan را در Android از صفحه Android NDK بررسی کنید تا لایه اعتبار سنجی را در برنامه خود فعال کنید.
RenderDoc
RenderDoc یکی دیگر از ابزارهای منبع باز قدرتمند است که به شما امکان می دهد از یک فریم برای بازرسی و تجزیه و تحلیل عکس بگیرید. این یک ابزار بسیار قدرتمند است که توسط برنامه نویسان گرافیک برای اشکال زدایی صحنه های رندر شده خود استفاده شده است. این برنامه از Vulkan در اندروید به خوبی پشتیبانی می کند، اگرچه برنامه شما باید به عنوان اشکال زدایی تنظیم شود تا کار کند.
برای کسب اطلاعات در مورد نحوه تنظیم و استفاده از آن در برنامه Android خود، بررسی کنید چگونه از RenderDoc در Android استفاده کنم .
ضبط / پخش مجدد کتابخانه ها
GFXReconstruct
GFXReconstruct یک پروژه متن باز است که ابزارهایی را برای ضبط و پخش مجدد فراخوان های گرافیکی API اجرا شده توسط یک برنامه ارائه می دهد. ردیابی ضبط شده می تواند بعداً برای بازسازی رفتار گرافیکی خاص برنامه ضبط شده مجدداً پخش شود. یکی از مزایای اصلی GFXReconstruct این است که به شما امکان می دهد از آن در برنامه منتشر شده خود استفاده کنید (زمانی که android:debuggable را خاموش کرده باشید).
برای اطلاعات بیشتر به مخزن پروژه مراجعه کنید. اطلاعات راهاندازی و استفاده از Vulkan در Android در GFXReconstruct API Capture and Replay برای Android موجود است.
توجه داشته باشید که فایلهای ردیابی قابل حمل نیستند، به این معنی که نمیتوانید فایل را روی یک دستگاه ضبط کنید و آن را در دستگاه دیگری (با نسخههای سیستمعامل، چیپستها یا حتی نسخه درایورهای مختلف) دوباره پخش کنید.
پروفایلرها
بازرس GPU Android (AGI)
Android GPU Inspector (AGI) یک نمایه گر گرافیکی است که برای اندروید ساخته شده است که شامل یک نمایه سیستم و یک نمایه فریم است. این اطلاعات پروفایل سطح بالایی را ارائه می دهد که به شما امکان می دهد مشخصات عملکرد بازی خود را درک کنید و گلوگاه ها را شناسایی کنید.
برای دانلود AGI و یادگیری نحوه استفاده از آن، به وب سایت Android GPU Inspector مراجعه کنید.
پروفایل اندروید استودیو
Android Studio Profiler یک ابزار مفید برای پروفایل عملکرد برنامه شما است. با این حال، به طور خاص برای پروفایل گرافیکی طراحی نشده است. این شامل نمایهگر CPU، نمایهگر حافظه، نمایهگر شبکه، پروفیل انرژی، پروفیل برق و نمایشگر رویداد است.
برای اطلاعات بیشتر در مورد نحوه راه اندازی و استفاده از Android Studio Profiler، بخش عملکرد برنامه خود را نمایه کنید.
مشخصات OEM
ابزارهای این بخش مختص OEM هستند و ممکن است روی دستگاههایی که روی تراشههای دیگر کار میکنند کار نکنند.
ARM Performance Studio برای موبایل
Arm Performance Studio for Mobile نام جدید Arm Mobile Studio است. این مجموعه ابزارهایی است که شامل Graphics Analyzer و Frame Advisor میشود تا به شما در شناسایی و رفع مشکلات عملکرد پردازندههای گرافیکی ARM کمک کند.
برای اطلاعات بیشتر، وب سایت Arm Performance Studio for Mobile را بررسی کنید.
ARM PerfDoc برای پردازندههای گرافیکی مالی
PerfDoc یک لایه Vulkan است که برای اعتبارسنجی برنامهها در برابر بهترین شیوههای GPU Mali ARM توسعه یافته است. از آن زمان به بعد در VK_LAYER_KHRONOS_validation ادغام شد و اساساً بخشی از لایههای اعتبارسنجی استاندارد Vulkan است.
برای اطلاعات در مورد نحوه استفاده از آن، بخش Debugging with validation layer را بررسی کنید.
پروفایل کوالکام اسنپدراگون
Qualcomm Snapdragon Profiler یک نرم افزار پروفایل است که توسط Qualcomm برای توسعه دهندگان برنامه توسعه یافته است تا CPU، GPU، DSP، حافظه، قدرت، حرارت و عملکرد شبکه را برای شناسایی تنگناها در چیپست های خود تجزیه و تحلیل کنند.
برای اطلاعات بیشتر، Snapdragon Profiler را در شبکه توسعهدهنده Qualcomm بررسی کنید.
GPUWatch سامسونگ
GPUWatch سامسونگ ابزاری برای مشاهده فعالیت GPU در دستگاه های سامسونگ است. برخلاف سایر ابزارها، میتوانید از این ابزار مستقیماً از دستگاه تلفن همراه خود استفاده کنید، بنابراین بررسی عملکرد برنامه خود حتی زمانی که به رایانه میزبان دیگری دسترسی ندارید بسیار مفید است.
برای اطلاعات بیشتر در مورد نحوه فعال کردن آن، راهنمای کاربر را بررسی کنید.
PVRTune
PVRTune Imagination Technologies به توسعه دهندگان این امکان را می دهد تا برنامه های کاربردی را روی سخت افزار PowerVR در زمان واقعی با طیف گسترده ای از شمارنده ها و معیارها نمایه کنند. همچنین اجازه می دهد تا جلسه برای تجزیه و تحلیل بیشتر در سطح پایین و شناسایی تنگناهای عملکرد ذخیره شود.
برای اطلاعات بیشتر در مورد نحوه استفاده از PVRTune، دفترچه راهنما را بررسی کنید.
ابزارهای مهاجرت
تبدیل شیدرها از GLSL به SPIR-V
Vulkan API انتظار دارد که برنامه های سایه زن در قالب دودویی میانی SPIR-V ارائه شوند. این قرارداد با OpenGL ES متفاوت است، جایی که میتوانید کد منبع نوشته شده در زبان سایهاندازی OpenGL (GLSL) را به عنوان رشتههای متنی ارسال کنید.
NDK r12 و جدیدتر شامل یک کتابخانه زمان اجرا برای کامپایل سایه زن های GLSL در SPIR-V است که می تواند توسط Vulkan استفاده شود. از کامپایلر shaderc می توان برای کامپایل برنامه های سایه زن نوشته شده در GLSL در SPIR-V استفاده کرد. اگر بازی شما از HLSL استفاده می کند، DirectXShaderCompiler از خروجی SPIR-V پشتیبانی می کند.
به طور معمول، شما باید برنامه های سایه زن را به صورت آفلاین به عنوان بخشی از فرآیند ساخت دارایی برای بازی خود کامپایل کنید و ماژول های SPIR-V را به عنوان بخشی از دارایی های زمان اجرا خود بگنجانید.
برای اطلاعات بیشتر در مورد فرآیند کامپایل سایه زن برای برنامه Vulkan خود، کامپایلرهای سایه زن Vulkan را در Android در بخش Android NDK بررسی کنید.
ویژگی های پیشرفته
Android Frame Pacing را در رندر Vulkan خود ادغام کنید
کتابخانه Android Frame Pacing (همچنین با نام Swappy شناخته میشود) به بازیهای Vulkan کمک میکند تا به رندرینگ صاف و ریتم صحیح دست یابند تا حلقه رندر بازی با زیرسیستم نمایشگر سیستمعامل و سختافزار نمایشگر زیرین همگام شود.
قدم زدن صحیح، مصنوعات بصری معروف به پارگی را حذف میکند، مصرف انرژی را از طریق همگامسازی بین تازهسازی نمایشگر و نمایش فریم بهینه میکند، و همچنین با تثبیت نرخ فریم، ناهنجاریها را از بین میبرد. برای کسب اطلاعات بیشتر در مورد اهمیت سرعت قاب، بخش Frame Pacing Library AGDK را بررسی کنید.
برای اطلاعات بیشتر در مورد نحوه ادغام سرعت فریم در بازی خود، ادغام سرعت فریم اندروید را در رندر Vulkan خود بررسی کنید.
جهت گیری دستگاه را با پیش چرخش Vulkan کنترل کنید
دست زدن به چرخش سطح در خارج از برنامه ممکن است رایگان نباشد. حتی در برخی از دستگاههای پیشرفته با واحد پردازش نمایشگر اختصاصی (DPU)، همچنان احتمالاً جریمه عملکرد قابل اندازهگیری برای پرداخت وجود خواهد داشت و تأثیر آن بستگی به این دارد که برنامه شما محدود به CPU باشد یا محدود به GPU.
Vulkan به توسعه دهندگان این قدرت را می دهد تا اطلاعات بسیار بیشتری را در مورد وضعیت رندر در مقایسه با OpenGL به دستگاه ها مشخص کنند. یکی از این اطلاعات جهت گیری دستگاه و رابطه آن با جهت گیری سطحی رندر است. این قابلیت به شما امکان می دهد پیش چرخش را پیاده سازی کنید تا بیشترین بهره را از Vulkan در اندروید ببرید.
برای اطلاعات بیشتر در مورد نحوه مدیریت کارآمد چرخش دستگاه در برنامه Vulkan خود، جهت گیری دستگاه را با پیش چرخش Vulkan و برنامه نمایشی همراه آن بررسی کنید.
بهینه سازی با دقت کمتر
فرمت عددی داده های گرافیکی و محاسبات شیدر می تواند تاثیر بسزایی در عملکرد بازی شما داشته باشد. اکثر محاسبات و داده ها در گرافیک سه بعدی مدرن از اعداد ممیز شناور استفاده می کنند. Vulkan در اندروید از اعداد ممیز شناور استفاده می کند که اندازه آنها 32 یا 16 بیت است. یک عدد ممیز شناور 32 بیتی را معمولاً با دقت تک یا دقت کامل می گویند. اگرچه نوع ممیز شناور 64 بیتی در Vulkan تعریف شده است، اما معمولاً پشتیبانی نمی شود و استفاده از آن توصیه نمی شود.
برای اطلاعاتی در مورد نحوه بهینه سازی برنامه Vulkan برای بهترین عملکرد در محاسبات خود ، Optimize با دقت کم را بررسی کنید.