ডাইরেক্ট 3 ডি 11 (পৃষ্ঠা 325, 326) সহ প্রাকটিক্যাল রেন্ডারিং এবং কমপিটেশন বইয়ের 6.4 বিভাগের ধ্রুব বাফারগুলিতে এটি উল্লেখ করা হয়েছে:
ডিফল্টরূপে, এইচএলএসএল সংকলক ধ্রুবকগুলিকে এমনভাবে সারিবদ্ধ করার চেষ্টা করবে যাতে তারা একাধিক ফ্লোট 4 নিবন্ধগুলি ছড়িয়ে না দেয়। [...] এইচএলএসএল ধ্রুবক বাফারের জন্য প্যাকিংও প্যাক অফসেট কীওয়ার্ডের মাধ্যমে ম্যানুয়ালি নির্দিষ্ট করা যেতে পারে।
আমি ধরে নিয়েছি ওপেনজিএল সমতুল্য, ইউনিফর্ম বাফার অবজেক্টগুলিতে অনুরূপ একটি বিধি প্রযোজ্য হবে, যেহেতু তারা একই হার্ডওয়্যার বৈশিষ্ট্যে মানচিত্র করে।
ভ্যানিলা ইউনিফর্ম সম্পর্কে কি তবে? ইউনিফর্ম ঘোষণা করার সময় প্রয়োগ করা বিধিগুলি কী কী?
uniform vec2 xy; // Can we expect the compiler to pack xy
uniform vec2 zw; // into a same four component register?
uniform vec2 rg;
uniform float foo; // Will this prevent from packing rg and ba?
uniform vec2 ba; // If so, will foo eat up a full four components register?
সংকলক যদি এই ধরনের অপ্টিমাইজেশন করতে পারে তবে তারা কতটা ভাল? আমরা স্পষ্টভাবে সংকলককে প্যাক করতে বলতে পারি বা না করতে পারি এবং আমাদের কখন করা উচিত?
s_buffer_load_dword
নির্দেশাবলী - সেগুলি ইনপুট ইউনিফর্মগুলি পড়ছে এবং হেক্সের শেষ সংখ্যাটি পড়ার অফসেট। এটা প্রথম ক্ষেত্রে দেখায়xy
0 অফসেট করা হয় এবংzw
এ 16. অফসেট দ্বিতীয় ক্ষেত্রে আপনি সালেxy
অফসেট 0 এ,z
16 অফসেট, এবংzw
অফসেট 32 এ দেখে মনে হচ্ছে সব ইউনিফর্ম স্বতন্ত্রভাবে 16-বাইট-প্রান্তিককৃত, এবং বস্তাবন্দী না একসাথে বা পুনরায় সাজানো।