تولد مجدد DirectX 10
از ديدگاه سرعت و عملكرد خالص، DirectX 10 به دليل سربار محاسباتي كمتر بسيار كارآمد تر از DirectX 9 ميباشد، فضاي بيشتري جهت ذخيره سازي دادههايي كه در برنامههاي سايهزن به كار ميروند در آن در نظر گرفته شده به طوري كه سربار مديريتي API جهت سازماندهي به دادهها كاهش يافته است. لذا در برنامههاي سايهزن پيچيده،انتظار ميرودDirectX 10 عملكرد بهتري داشته باشد.
يكي از موضوعهاي داغي كه امروزه در دنياي CPUها مطرح است Virtualization ميباشد كه سازندگان GPU نيز درباره آن بحث ميكنند، DirectX10 و نسخه جديد WDDM (سرنام Windows Display Driver Model) به سختافزار گرافيكي نياز دارند كه از Virtualization پشتيباني كند چرا كه در برنامههايي كه با DirectX 10 نوشته شدهاند هيچ تضميني وجود نخواهد داشت كه به طور مستقيم و انحصاري به GPU دسترسي داشته باشد و GPUو منابع محاسباتي آن ميتوانند بين بازيهاي 3D و عمليات هاي پردازش فيزيكي تقسيم شوند يا در صورت پياده سازي كامل Virtualization چندين سيستمعامل به صورت همزمان ميتوانند از يك GPU بهره برداري كنند.
از ديگر ملزومات كليدي DirectX 10 ميتوان به حافظه مجازي اشاره كرد، به اين معنا كه GPUهاي مبتني بر DirectX 10 در صورتي كه حافظه اختصاصي خود را كامل مصرف كرده باشند، ميتوانند دادههاي خود را از داخل حافظه اصلي كامپيوتر Page كنند. در صورتي كه حافظهگرافيكي مجازي با يك الگوريتم Caching مناسب به خوبي مديريت شود، ميتواند به توسعه دهنگان اجازه دهد كه حجم بافتها و اشياء بازيها را به طور خارقالعادهاي افزايش دهند ، چرا كه ديگر محدوديت حافظه و مشكلات ناشي از پر شدن حافظه به دليل استفاده از بافتهاي زياد ديگر وجود ندارد. در سال 2002، 3DLabs اولين كمپاني بود كه حافظه گرافيكي مجازي را در پردازندهگرافيكي P10 خود معرفي كرد.
Tim Sweeney يكي از توسعهدهندگان Epic Game در اين باره چنين ميگويد: «حافظه بيشتر به ما امكان ميدهد تا از بافتها بيشتري نسبت به اكنون در ترسيم فضا و اجسام سهبعدي استفاده كنيم، در نتيجه تصوير نهايي بيش از پيش به واقعيت شبيه خواهد بود، با اين حال شما بهبود سريع و ناگهاني در كيفيت تصوير بازيها نخواهيد داشت، چرا كه اكثر توسعهدهندگان خود را به استفاده از بافتهاي محدود مقيد كردهاند تا در داخل حافظه كارتگرافيك جزئيات آنها جا بگيرد در غير اين صورت در صورتي كه جزئيات بافت بيشتر از حجم حافظه باشد، سرريز آن در حافظه اصلي كامپيوتر ذخيره خواهد شد كه عمليات Swapping بافتها ممكن است كارايي و سرعت برنام را تحت تاثير قرار دهد.
بهرهگيري از حافظه مجازي كارايي Swapping را در حد قابل قبولي نگه ميدارد چرا كه تنها بخشي از بافت كه كاملا رندر شده است در صورت نياز با محتويات داخل حافظه كارت گرافيك تبادل ميشود. به اين ترتيب حافظه كار گرافيك مانند يك نوع كش براي GPU عمل ميكند كه مقدار كم يا زياد آن چندان اهميت ندارد بلكه تنها به آن ميزان حافظه نياز است كه بتوان Frame Buffer ، Back Frame و بلاكهاي بافتهايي كه در سكانسهاي قبلي رندر شدهاند را در حافظه نگه داريد و نيازي به ذخيره سازي تمامي بافتها در حافظه وجود ندارد. اين امر اجازه ميدهد كارت گرافيكها با حافظه كم اما سريعتر بدون افزايش هزينه توليد شوند.
از ديد برنامه نويسي نيز محدوديتهاي كدنويسي جهت تفكيك حافظه سيستم از حافظه كارتگرافيك پشت پرده حافظه مجازي قرار خواهد گرفت و برنامه نويس ديگر درگير پيچيدگيهاي اين چنيني نميگردد.»
از نظر تواناييهاي سختافزاري DirectX 10 بسيار بهDirectX 9 شباهت دارد و تنها دقت پردازش درDirectX 10 كمي بيشتر شده است. مايكروسافت به طور انحصاري نوشتن برنامههاي سايهزنDirectX 10 را به زبان HLSL (سرنام High Level Shading Language) محدود كرده است، به اين اميد كه ديگر كدهاي سختافزاري/نرمافزاي تركيب شده از زبانهاي مختلف مانع از بهينهسازيهاي نهايي كد اسمبلي نشوند، اين تصميم به معناي مرگ زبان برنامهنويسي Cg دركنار DirectX 10 است و ديگر امكان توسعه كدهاي سايه زن توسط Cg براي DirectX وجود ندارد.