ডিবাগার
বৈধতা স্তর দিয়ে ডিবাগিং
Vulkan উচ্চ কর্মক্ষমতা এবং কম ড্রাইভার ওভারহেড জন্য ডিজাইন করা হয়েছে. এটি অর্জন করার জন্য, এটি ডিফল্টরূপে শুধুমাত্র খুব সীমিত ত্রুটি পরীক্ষা এবং ডিবাগিং ক্ষমতা অন্তর্ভুক্ত করে। আপনি যদি কিছু ভুল করেন, ড্রাইভার প্রায়শই একটি ত্রুটি কোড ফেরত দেওয়ার পরিবর্তে ক্র্যাশ করবে, বা আরও খারাপ, এটি আপনার গ্রাফিক্স কার্ডে কাজ করবে বলে মনে হবে কিন্তু অন্যদের ক্ষেত্রে সম্পূর্ণরূপে ব্যর্থ হবে।
আপনার বিকাশের সময় বিস্তৃত চেক সক্ষম করতে, ভলকান বৈধকরণ স্তরগুলি সরবরাহ করে, যা কোডের টুকরো যা API এবং গ্রাফিক্স ড্রাইভারের মধ্যে ফাংশন প্যারামিটারগুলিতে অতিরিক্ত চেক চালানো এবং মেমরি পরিচালনার সমস্যাগুলি ট্র্যাক করার মতো জিনিসগুলি করার জন্য সন্নিবেশ করা যেতে পারে। আপনি বিকাশের সময় বৈধতা স্তরগুলি সক্ষম করতে পারেন এবং শূন্য ওভারহেড সহ আপনার অ্যাপ্লিকেশনটি প্রকাশ করার সময় সেগুলি সম্পূর্ণরূপে অক্ষম করতে পারেন৷
বৈধকরণ স্তরগুলি যে কেউ লিখতে পারে, কিন্তু খরোনোস VK_LAYER_KHRONOS_validation
নামে একটি একক মান সেট প্রদান করে। আপনার অ্যাপ্লিকেশনে বৈধতা স্তর সক্ষম করতে Android NDK পৃষ্ঠা থেকে Android-এ Vulkan বৈধতা স্তরগুলি দেখুন৷
রেন্ডারডক
RenderDoc আরেকটি শক্তিশালী ওপেন সোর্স টুল যা আপনাকে পরিদর্শন এবং বিশ্লেষণের জন্য একটি ফ্রেম ক্যাপচার করতে দেয়। এটি একটি খুব শক্তিশালী টুল যা গ্রাফিক্স প্রোগ্রামাররা তাদের রেন্ডার করা দৃশ্যগুলি ডিবাগ করতে ব্যবহার করেছে। এটি অ্যান্ড্রয়েডে ভালকান সমর্থন করে যদিও আপনার অ্যাপ্লিকেশনটি কাজ করার জন্য ডিবাগযোগ্য হিসাবে সেট করতে হবে।
আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশানে এটি কীভাবে সেট আপ করবেন এবং ব্যবহার করবেন সে সম্পর্কে তথ্যের জন্য, আমি Android এ RenderDoc কীভাবে ব্যবহার করব তা দেখুন।
ক্যাপচার / রিপ্লে লাইব্রেরি
GFX পুনর্গঠন
GFXReconstruct হল একটি ওপেন সোর্স প্রজেক্ট যা একটি অ্যাপ্লিকেশন দ্বারা নির্বাহিত গ্রাফিক্স API কল ক্যাপচার এবং রিপ্লে করার জন্য টুল প্রদান করে। রেকর্ড করা ট্রেসটি পরে ক্যাপচার করা অ্যাপ্লিকেশনটির গ্রাফিক্স-নির্দিষ্ট আচরণ পুনর্গঠনের জন্য পুনরায় প্লে করা যেতে পারে। GFXReconstruct এর একটি প্রধান সুবিধা হল যে এটি আপনাকে আপনার প্রকাশিত অ্যাপ্লিকেশনে এটি ব্যবহার করতে দেয় (যখন আপনি android:debuggable বন্ধ করে থাকেন)।
আরও তথ্যের জন্য, প্রকল্পের সংগ্রহস্থলে যান। Android-এ Vulkan-এর সেট-আপ এবং ব্যবহারের তথ্য GFXReconstruct API ক্যাপচার এবং Android-এর জন্য রিপ্লে- তে পাওয়া যায়।
মনে রাখবেন যে ট্রেস ফাইলগুলি পোর্টেবল নয়, যার অর্থ আপনি একটি ডিভাইসে ফাইলটি ক্যাপচার করতে পারবেন না এবং অন্য ডিভাইসে (ভিন্ন OS সংস্করণ, চিপসেট বা এমনকি ড্রাইভার সংস্করণ সহ) পুনরায় চালাতে পারবেন না।
প্রোফাইলার
অ্যান্ড্রয়েড জিপিইউ ইন্সপেক্টর (এজিআই)
অ্যান্ড্রয়েড জিপিইউ ইন্সপেক্টর (এজিআই) হল অ্যান্ড্রয়েডের জন্য তৈরি একটি গ্রাফিক্স প্রোফাইলার যাতে একটি সিস্টেম প্রোফাইল এবং একটি ফ্রেম প্রোফাইলার রয়েছে। এটি উচ্চ-স্তরের প্রোফাইলিং তথ্য প্রদান করে যা আপনাকে আপনার গেমের পারফরম্যান্স প্রোফাইল বুঝতে এবং বাধাগুলি সনাক্ত করতে দেয়।
AGI ডাউনলোড করতে এবং এটি কীভাবে ব্যবহার করবেন তা শিখতে, Android GPU ইন্সপেক্টর ওয়েবসাইট দেখুন।
অ্যান্ড্রয়েড স্টুডিও প্রোফাইলার
অ্যান্ড্রয়েড স্টুডিও প্রোফাইলার আপনার অ্যাপের কার্যকারিতা প্রোফাইল করার জন্য একটি দরকারী টুল। যাইহোক, এটি বিশেষভাবে গ্রাফিক্স প্রোফাইলিংয়ের দিকে তৈরি নয়। এটি CPU প্রোফাইলার, মেমরি প্রোফাইলার, নেটওয়ার্ক প্রোফাইলার, এনার্জি প্রোফাইলার, পাওয়ার প্রোফাইলার এবং ইভেন্ট মনিটর নিয়ে গঠিত।
অ্যান্ড্রয়েড স্টুডিও প্রোফাইলার কীভাবে সেট আপ করবেন এবং ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য, প্রোফাইল আপনার অ্যাপ পারফরম্যান্স বিভাগটি দেখুন।
OEM প্রোফাইলার
এই বিভাগের সরঞ্জামগুলি OEM নির্দিষ্ট এবং অন্যান্য চিপগুলিতে চলমান ডিভাইসগুলিতে কাজ নাও করতে পারে৷
মোবাইলের জন্য এআরএম পারফরম্যান্স স্টুডিও
আর্ম পারফরমেন্স স্টুডিও ফর মোবাইল হল আর্ম মোবাইল স্টুডিওর নতুন নাম। এটি এমন একটি সরঞ্জামের স্যুট যাতে গ্রাফিক্স বিশ্লেষক এবং ফ্রেম উপদেষ্টা অন্তর্ভুক্ত থাকে যা আপনাকে ARM GPU-তে পারফরম্যান্স সমস্যা সনাক্ত করতে এবং সমাধান করতে সহায়তা করে।
আরও তথ্যের জন্য, মোবাইল ওয়েবসাইটের জন্য আর্ম পারফরম্যান্স স্টুডিও দেখুন।
মালি জিপিইউ-এর জন্য এআরএম পারফডক
PerfDoc হল একটি Vulkan স্তর যা ARM-এর Mali GPU-এর সর্বোত্তম অনুশীলনের বিরুদ্ধে অ্যাপ্লিকেশন যাচাই করার জন্য তৈরি করা হয়েছে। এটি তখন থেকে VK_LAYER_KHRONOS_validation-এ মার্জ করা হয়েছে এবং এটি মূলত স্ট্যান্ডার্ড ভলকান বৈধতা স্তরের অংশ।
এটি কীভাবে ব্যবহার করবেন সে সম্পর্কে তথ্যের জন্য, যাচাইকরণ স্তর বিভাগ সহ ডিবাগিং দেখুন।
কোয়ালকম স্ন্যাপড্রাগন প্রোফাইলার
কোয়ালকম স্ন্যাপড্রাগন প্রোফাইলার হল একটি প্রোফাইলিং সফ্টওয়্যার যা কোয়ালকম দ্বারা অ্যাপ্লিকেশন বিকাশকারীদের জন্য তাদের চিপসেটের প্রতিবন্ধকতা চিহ্নিত করতে CPU, GPU, DSP, মেমরি, পাওয়ার, থার্মাল এবং নেটওয়ার্ক কর্মক্ষমতা বিশ্লেষণ করার জন্য তৈরি করা হয়েছে।
আরও তথ্যের জন্য, কোয়ালকম ডেভেলপার নেটওয়ার্কে স্ন্যাপড্রাগন প্রোফাইলার দেখুন।
স্যামসাং জিপিইউওয়াচ
Samsung এর GPUWatch হল Samsung ডিভাইসে GPU কার্যকলাপ পর্যবেক্ষণ করার জন্য একটি টুল। অন্যান্য সরঞ্জামগুলির থেকে ভিন্ন, আপনি এই টুলটি সরাসরি আপনার মোবাইল ডিভাইস থেকে ব্যবহার করতে পারেন, তাই আপনার অন্য হোস্ট কম্পিউটারে অ্যাক্সেস না থাকলেও অবিলম্বে আপনার অ্যাপ্লিকেশন কর্মক্ষমতা পরীক্ষা করা খুব সহজ।
এটি কীভাবে সক্ষম করবেন সে সম্পর্কে আরও তথ্যের জন্য, ব্যবহারকারীর নির্দেশিকা দেখুন।
পিভিআরটিউন
ইমাজিনেশন টেকনোলজিসের পিভিআরটিউন ডেভেলপারদেরকে পাওয়ারভিআর হার্ডওয়্যারে রিয়েল-টাইমে কাউন্টার এবং মেট্রিক্সের বিস্তৃত অ্যারের সাথে অ্যাপ্লিকেশন প্রোফাইল করতে সক্ষম করে। এটি আরও নিম্ন-স্তরের বিশ্লেষণের জন্য এবং কর্মক্ষমতা বাধা সনাক্ত করার জন্য সেশনটিকে সংরক্ষণ করার অনুমতি দেয়।
PVRTune কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য, ম্যানুয়ালটি দেখুন।
মাইগ্রেশন টুলস
GLSL থেকে SPIR-V তে শেডার রূপান্তর করা হচ্ছে
Vulkan API আশা করে যে shader প্রোগ্রামগুলি SPIR-V বাইনারি মধ্যবর্তী বিন্যাসে প্রদান করা হবে। এই কনভেনশনটি OpenGL ES থেকে আলাদা, যেখানে আপনি টেক্সট স্ট্রিং হিসাবে OpenGL শেডিং ল্যাঙ্গুয়েজে (GLSL) লেখা সোর্স কোড জমা দিতে পারেন।
NDK r12 এবং পরবর্তীতে SPIR-V-এ GLSL শেডার্স কম্পাইল করার জন্য একটি রানটাইম লাইব্রেরি অন্তর্ভুক্ত যা ভলকান ব্যবহার করতে পারে। Shaderc কম্পাইলার GLSL-এ SPIR-V-তে লেখা শেডার প্রোগ্রাম কম্পাইল করতে ব্যবহার করা যেতে পারে। যদি আপনার গেম HLSL ব্যবহার করে, DirectXShaderCompiler SPIR-V আউটপুট সমর্থন করে।
সাধারণত, আপনার গেমের জন্য সম্পদ নির্মাণ প্রক্রিয়ার অংশ হিসাবে আপনাকে অফলাইনে শেডার প্রোগ্রামগুলি কম্পাইল করতে হবে এবং আপনার রানটাইম সম্পদের অংশ হিসাবে SPIR-V মডিউলগুলি অন্তর্ভুক্ত করতে হবে।
আপনার Vulkan অ্যাপ্লিকেশনের জন্য শেডার সংকলন প্রক্রিয়া সম্পর্কে আরও তথ্যের জন্য, Android NDK বিভাগে Vulkan শেডার কম্পাইলারগুলি দেখুন।
উন্নত বৈশিষ্ট্য
আপনার ভলকান রেন্ডারারে অ্যান্ড্রয়েড ফ্রেম পেসিং সংহত করুন
অ্যান্ড্রয়েড ফ্রেম পেসিং লাইব্রেরি (এটি সোয়াপি নামেও পরিচিত) ভলকান গেমগুলিকে মসৃণ রেন্ডারিং এবং সঠিক পেসিং অর্জনে সহায়তা করে যাতে OS এর ডিসপ্লে সাবসিস্টেম এবং অন্তর্নিহিত ডিসপ্লে হার্ডওয়্যারের সাথে গেম রেন্ডারিং লুপ সিঙ্ক থাকে৷
সঠিক পেসিং টিয়ার নামে পরিচিত ভিজ্যুয়াল আর্টিফ্যাক্টগুলিকে দূর করে, ডিসপ্লে রিফ্রেশ এবং ফ্রেম উপস্থাপনার মধ্যে সিঙ্ক্রোনাইজেশনের মাধ্যমে পাওয়ার খরচ অপ্টিমাইজ করে এবং ফ্রেম রেট স্থিতিশীল করে জ্যাঙ্কগুলিও দূর করে। ফ্রেম পেসিং এর গুরুত্ব সম্পর্কে আরো জানতে, AGDK এর ফ্রেম পেসিং লাইব্রেরি বিভাগটি দেখুন।
আপনার গেমে ফ্রেম পেসিং কিভাবে একীভূত করবেন সে সম্পর্কে আরও তথ্যের জন্য, আপনার Vulkan রেন্ডারারে ইন্টিগ্রেট অ্যান্ড্রয়েড ফ্রেম পেসিং দেখুন।
ভলকান প্রাক-ঘূর্ণন সহ ডিভাইস অভিযোজন পরিচালনা করুন
অ্যাপ্লিকেশনের বাইরে সারফেস রোটেশন হ্যান্ডলিং বিনামূল্যে নাও হতে পারে। এমনকি ডেডিকেটেড ডিসপ্লে প্রসেসিং ইউনিট (DPU) সহ কিছু উচ্চতর ডিভাইসে, এখনও একটি পরিমাপযোগ্য পারফরম্যান্স পেনাল্টি দিতে হবে এবং প্রভাব নির্ভর করবে আপনার অ্যাপ্লিকেশন CPU বাউন্ড বা GPU আবদ্ধ কিনা।
Vulkan ওপেনজিএল-এর তুলনায় রেন্ডারিং অবস্থা সম্পর্কে ডিভাইসগুলিতে আরও অনেক তথ্য নির্দিষ্ট করার ক্ষমতা ডেভেলপারদের প্রদান করে। এই ধরনের একটি তথ্য হল ডিভাইস ওরিয়েন্টেশন এবং পৃষ্ঠের অভিযোজন রেন্ডারের সাথে এর সম্পর্ক। এই ক্ষমতা আপনাকে Android-এ Vulkan থেকে সর্বাধিক সুবিধা পেতে প্রাক-ঘূর্ণন প্রয়োগ করতে দেয়।
আপনার Vulkan অ্যাপ্লিকেশনে কীভাবে দক্ষতার সাথে ডিভাইসের ঘূর্ণন পরিচালনা করবেন সে সম্পর্কে আরও তথ্যের জন্য, ভলকান প্রাক-ঘূর্ণন এবং এর সাথে থাকা ডেমো অ্যাপ্লিকেশন সহ ডিভাইসের অভিযোজন পরিচালনা করুন।
কম নির্ভুলতার সাথে অপ্টিমাইজ করুন
গ্রাফিক্স ডেটা এবং শেডার গণনার সংখ্যাসূচক বিন্যাস আপনার গেমের কার্যক্ষমতার উপর উল্লেখযোগ্য প্রভাব ফেলতে পারে। আধুনিক 3D গ্রাফিক্সের বেশিরভাগ গণনা এবং ডেটা ফ্লোটিং পয়েন্ট সংখ্যা ব্যবহার করে। অ্যান্ড্রয়েডে ভলকান 32 বা 16 বিট আকারের ফ্লোটিং পয়েন্ট নম্বর ব্যবহার করে। একটি 32-বিট ফ্লোটিং পয়েন্ট সংখ্যাকে সাধারণত একক নির্ভুলতা বা সম্পূর্ণ নির্ভুলতা হিসাবে উল্লেখ করা হয়। যদিও 64-বিট ফ্লোটিং পয়েন্ট টাইপ ভলকান-এ সংজ্ঞায়িত করা হয়েছে, এটি সাধারণত সমর্থিত নয় এবং এটির ব্যবহার সুপারিশ করা হয় না।
আপনার পাটিগণিতের সেরা পারফরম্যান্সের জন্য আপনার ভলকান অ্যাপ্লিকেশনটিকে কীভাবে অপ্টিমাইজ করা যায় সে সম্পর্কে তথ্যের জন্য কম নির্ভুলতার সাথে অপ্টিমাইজ দেখুন।