জিপিইউর জন্য একটি ফ্রেম সেট আপ করতে সিপিইউতে প্রচুর কাজ প্রয়োজন এবং গ্রাফিক্স ড্রাইভারের মধ্যে সেই কাজের একটি ভাল অংশ রয়েছে। ডিএক্স 12 / ভলকানের আগে, গ্রাফিক্স ড্রাইভারের কাজটি মূলত এপিআইয়ের নকশায় একক থ্রেডড হতে বাধ্য হয়েছিল।
আশা করা যায় যে ডিএক্স 12 / ভলকান সেই বিধিনিষেধটি সরিয়ে দেয়, ড্রাইভারের কাজটি একটি ফ্রেমের মধ্যে একাধিক সিপিইউ থ্রেডের সমান্তরালে সম্পাদন করতে দেয়। এটি মাল্টিকোর সিপিইউগুলির আরও দক্ষ ব্যবহার সক্ষম করবে, গেম ইঞ্জিনগুলি সিপিইউ-সীমাবদ্ধ না হয়ে আরও জটিল দৃশ্যের দিকে ঠেলে দেবে। এটাই প্রত্যাশা practice বাস্তবে তা বাস্তবায়িত হবে কিনা তা হ'ল আমাদের আগামী কয়েক বছর ধরে অপেক্ষা করতে হবে।
কিছুটা বিশদভাবে জানাতে: গেম ইঞ্জিন রেন্ডারারের আউটপুট হ'ল ডিএক্স / জিএল এপিআই কলগুলির একটি স্ট্রিম যা কোনও ফ্রেম রেন্ডার করার জন্য ক্রিয়াকলাপগুলির ক্রম বর্ণনা করে। তবে, জিপিইউ হার্ডওয়্যার গ্রাস করে এমন এপিআই কলগুলির প্রবাহ এবং আসল বাইনারি কমান্ড বাফারগুলির মধ্যে একটি দুর্দান্ত দূরত্ব রয়েছে। ড্রাইভারকে জিপিইউর মেশিন ল্যাঙ্গুয়েজে এপিআই কলগুলি "সংকলন" করতে হবে, তাই কথা বলতে। এটি একটি তুচ্ছ প্রক্রিয়া নয় — এটিতে এপিআই ধারণাগুলিকে নিম্ন-স্তরের হার্ডওয়্যার বাস্তবতায় অনুবাদ করা, জিপিইউকে কখনই কোনও অবৈধ স্থিতিতে সেট করা না হয় তা নিশ্চিতকরণের বৈধতা, মেমরির বরাদ্দ এবং ডেটা বিপর্যস্ত করে, ইস্যু করার জন্য রাষ্ট্রীয় পরিবর্তনগুলি ট্র্যাক করে থাকে নিম্ন-স্তরের কমান্ডগুলি সঠিক করুন এবং আরও অনেক কিছু। গ্রাফিক্স ড্রাইভার এই সমস্ত জিনিস জন্য দায়ী।
ডিএক্স 11 / জিএল 4 এবং পূর্ববর্তী এপিআইগুলিতে, এই কাজটি সাধারণত একক ড্রাইভার থ্রেড দ্বারা সম্পন্ন হয়। এমনকি আপনি যদি একাধিক থ্রেড (যেমন আপনি DX11 স্থগিত কমান্ড তালিকাগুলি ব্যবহার করে করতে পারেন) থেকে এপিআই কল করেন তবে এটি ড্রাইভার থ্রেডের জন্য পরবর্তী সময়ে চিবানোর জন্য কিছু কাজ যুক্ত করে। এর আগে একটি বড় কারণ আমি আগে উল্লেখ করেছি রাষ্ট্রীয় ট্র্যাকিং। হার্ডওয়্যার-স্তরের জিপিইউ কনফিগারেশনের বিশদগুলির অনেকের জন্য বর্তমান গ্রাফিক্স পাইপলাইন অবস্থার জ্ঞান প্রয়োজন, সুতরাং সমান্তরালভাবে প্রক্রিয়াজাতকরণের জন্য কমান্ডের তালিকাটি ভাঙ্গার কোনও ভাল উপায় নেই — প্রতিটি অংশকে ঠিক কী অবস্থায় এটি শুরু করা উচিত তা জানতে হবে যদিও, আগের অংশটি এখনও প্রক্রিয়া করা হয়নি।
এটি ডিএক্স 12 / ভলকানে পরিবর্তিত একটি বড় জিনিস things একটি জিনিসের জন্য, তারা প্রায় সমস্ত গ্রাফিক্স পাইপলাইন অবস্থাকে একটি বস্তুর সাথে অন্তর্ভুক্ত করে এবং অন্যটির জন্য (কমপক্ষে DX12 এ) যখন আপনি একটি কমান্ড তালিকা তৈরি করা শুরু করেন আপনাকে অবশ্যই প্রাথমিক পাইপলাইন রাষ্ট্র সরবরাহ করতে হবে ; রাষ্ট্রটি এক কমান্ডের তালিকা থেকে পরবর্তী কমান্ডে উত্তরাধিকার সূত্রে প্রাপ্ত হয় না। নীতিগতভাবে, এটি ড্রাইভারটি পূর্ববর্তী কমান্ড তালিকাগুলি সংকলন শুরু করার আগে কিছু জানতে না পারে allows এবং ফলস্বরূপ অ্যাপ্লিকেশনটি তার রেন্ডারিকে সমান্তরাল খণ্ডে বিভক্ত করতে দেয়, পুরোপুরি সংকলিত কমান্ড তালিকাগুলি তৈরি করে, যা তখন হতে পারে একসাথে একত্রিত হয়ে জিপিইউতে ন্যূনতম গোলযোগ সহ প্রেরণ করা হয়েছে।
অবশ্যই, নতুন এপিআইগুলিতে আরও অনেক পরিবর্তন রয়েছে, তবে মাল্টিথ্রেডিং যতদূর যায়, এটি সবচেয়ে গুরুত্বপূর্ণ অংশ।