আমি কীভাবে আমার ভার্টেক্স এবং খণ্ডের শেডারের গতিটি আলাদাভাবে প্রোফাইল করব?


11

আমি জানতে চাই যে আমি কীভাবে আমার ভার্টেক্স বা আমার টুকরা শেডারটি আমার রেন্ডারিং পাইপলাইনে কোনও বাধা কিনা তা পরীক্ষা করে দেখতে পারি।

আমি ওপেনজিএল কমান্ডগুলির মধ্যে ক্লক চেকপয়েন্ট পেতে লক্ষ্য glQueryCounterসহ ব্যবহার করার বিষয়ে পড়েছি GL_TIMESTAMP, তবে এগুলি বিভিন্ন ধরণের শেডারগুলির মধ্যে পার্থক্য করে না।

উদাহরণস্বরূপ, জিপিইউতে যদি একটি ফ্রেম রেন্ডার করতে 8 এমএস নেয় তবে আমি কি বলতে পারি যে ভার্টেক্স শ্যাডারটি 7 এমএস এবং ফ্রেগমেন্ট শেডারটি 1 এমএস নিয়েছিল?

উত্তর:


12

ভার্টেক্স এবং খণ্ডের ছায়া গো ক্রমান্বয়ে চলবে, যথাক্রমে নয়, এবং জিপিইউ স্বয়ংক্রিয়ভাবে তাদের মধ্যে লোড-ভারসাম্য লোড করে, সুতরাং অর্থাত্ নির্দিষ্টভাবে নির্দিষ্ট সময় নির্ধারণ করা সম্ভব নয় যেমন একটির জন্য 7 এমএস এবং অন্যটির জন্য 1 এমএস।

যাইহোক, বাধা কোথায় রয়েছে তা পরিমাপ করার জন্য আপনি একটি সাধারণ পরীক্ষা করতে পারেন: আপনার সমস্ত ড্র কলগুলির জন্য ভিউ-প্রজেকশন ম্যাট্রিক্সটি সমস্ত শূন্যে সেট করুন। এটি সমস্ত অবস্থানকে তাদের অবস্থানের জন্য শূন্য আউটপুট শূন্য করে এবং সমস্ত ত্রিভুজকে অধঃপতিত করে তোলে; এটি শর্ট সার্কিটগুলি সমস্ত রেস্টারাইজেশন এবং টুকরো ছায়া গোছানো, যখন সমস্ত ভার্টেক্স শ্যাডার কাজ চালিয়ে যায় (শেডার সংকলক কিছুতেই দূরে অনুকূলিত করতে পারে না, কারণ এটি জানে না ম্যাট্রিক্স রানটাইমের সময় শূন্যে সেট করা হবে)।

আপনি যখন ম্যাট্রিক্স শূন্যের সাথে পারফরম্যান্স পরিমাপ করবেন, আপনি জিপিইউতে কোনও একযোগে রাস্টারাইজেশন বা টুকরা শেডিং কাজ ছাড়াই কেবলমাত্র ভার্টেক্স শেডারগুলি চালানোর জন্য প্রয়োজনীয় পরিমাণটি দেখছেন। তারপরে আপনি এটিকে প্রতিটি পাসের জন্য সাধারণ রেন্ডারিংয়ের জন্য প্রয়োজনীয় সময়ের পরিমাণের সাথে তুলনা করতে পারেন। যদি দুটি সময় একই হয়, তবে পাসটি সম্ভবত খুব উচ্চতর-আবদ্ধ; যদি শূন্য-ম্যাট্রিক্স রেন্ডারিং উল্লেখযোগ্যভাবে দ্রুত হয় তবে এটি সম্ভবত পিক্সেলযুক্ত bound মধ্যবর্তী ফলাফল পাওয়াও সম্ভব, ইঙ্গিত করে যে এই কাজ দুটির মধ্যে সমানভাবে বিভক্ত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.