جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
معماري درايو گرافيکي در ويندوز 7
-(1 Body) 
معماري درايو گرافيکي در ويندوز 7
Visitor 364
Category: دنياي فن آوري
مدل درايو صفحه نمايش ويندوز يا WDDM (Windows Display Driver Model)، به معناي معماري درايو گرافيکي براي درايوهاي کارت گرافيکي است که نسخه اي از ويندوز با شروع از ويندوز ويستا را اجرا مي کنند.
اين مدل، جايگزيني براي معماري درايو صفحه نمايش ويندوز XP است که سبب ارتقاء و بهبود عملکرد قابليت هاي گرافيکي متداول گرديده است. همانند اکثر جنبه هاي ديگر Windows 7، ويژگي هاي گرافيکي آن نيز يک پيشرفت تکاملي براي قابليت هايي هستند که در ويندوز ويستا مشاهده کرديم. مدل درايو نمايشگر WDDM از نسخه 1.0 به نسخه 1.1 ارتقاء يافت. و DirectX 11 نيز کار خود را با Windows 7 آغاز کرد ( هر چند که بر روي ويندوز ويستا نيز قابل دسترسي است).
WDDM امکان رندر نمودن نرم افزارهاي کاربردي و دسک تاپ را با استفاده از Desktop Window Manager که در بالاي Direct3D اجرا مي شود، فراهم مي کند. همچنين از اينترفيس هاي DXGI جديد پشتيباني مي نمايد. WDDM حداقل به کارت ويدئويي سازگار با Direct3D 9 نياز دارد.

WDM ‎‏ و WDDM 1.1
 

هنگامي که ويندوز ويستا عرضه شد، يک مدل درايو جديد با نام Windows Display Driver Model) WDDM ) را در بر گرفت. اين مدل درايور در نسخه 1.0 بود. DWM (Desktop Window Manager) ‎‏ براي راندوي دسک تاپ با استفاده از DirectX 9 که اينترفيس کاربري آراسته Aero Glass, Flip 3D و ساير ويژگي هاي مشابه را در اختيار شما قرار مي دهد، به اين مدل درايور نياز دارد. WDDM به WDDM 1.1 ارتقاء يافت که براي بعضي از ويژگي هاي DWM جديد در Windows 7 مورد نياز مي باشد.
Windows 7 با درايوهاي WDDM 1.0 ( و درايوهاي XP) اجرا مي شود، اما با درايوها WDDM 1.0 شما نمي توانيد هيچيک از بهبودهاي DWM را بدست آوريد و با درايوهاي XP نيز Aero Glass و تمام ويژگيهاي آن را از دست خواهيد داد ( درست همانند ويندوز ويستا).
پس اجازه بدهيد ببينم که شما با WDDM 1.1 چه چيزي را بدست مي آوريد؟ براي شروع، بايد بگوئيم که DWM بجاي DirectX 9 از DirectX 10 استفاده خواهد کرد و بهبودهاي عملکردي چشمگيري را فراهم مي نمايد. DWM اکنون صرف نظر از تعداد پنجره هايي که باز کرده ايد، از مقدار ثابتي از حافظه سيستم استفاده خواهد کرد. استفاده از حافظه گرافيکي شما هنوز با باز کردن پنجره هاي بيشتر افزايش خواهد يافت، اما مقدار اين افزايش استفاده از حافظه در مقايسه با ويندوز ويستا "نصف" شده است. نتيجه نهايي اين است که حافظه مورد استفاده Windows 7 در مواقعي که شما پنجره هاي بيشتري را باز مي کنيد، بطور چشمگيري پائين تر خواهد بود. اين سيستم عامل در زمينه راندوي دست تاپ نيز بسيار سريع تر و کارآمدتر مي باشد.
Windows 7 يک مؤلفه جديد تحت عنوان Direct2D را معرفي نمود، نوعي جايگزين شتابدهي شده براي GDI مورد استفاده جهت ترسيم گرافيک هاي 2 بعدي، خطوط، چند ضلعي ها و نظاير آن ها. اين مؤلفه بر روي Direct3D 10 اجرا مي شود و به درايوهاي WDDM 1.1 نياز دارد. ما اکنون شاهد عملکردي سريع تر در نرم افزارهاي کاربردي استاندارد ( نه صرفاً نرم افزارهاي کاربردي 3 بعدي) هستيم.
عملکرد بازي هاي DirectX 10 نيز با درايوهاي WDDM 1.1 که تا حدود زيادي متمرکز بر مديريت حافظه هستند، بهبود يافت.
آيا از اين موضوع ناراحت نبوديد که وقتي يک نرم افزار کاربردي رسانه اي از تابع Video Overlay کارت گرافيکي شما در ويندوز ويستا استفاده مي کرد، اين صفحه آزاردهنده با يک درخشش لحظه اي و از دست دادن اينترفيس Aero Glass ظاهر مي شد؟ سپس شما يک درخشش ديگر را با بستن برنامه مورد نظر و در هنگام بازيابي اينترفيس Aero مشاهده مي کرديد. با Windows 7 و درايوهاي WDDM 1.1، اين وضعيت ديگر پيش نمي آيد.
اگر از يک پروژکتور با نسبت تصويري 4:3 به همراه يک لپ تاپ يا يک PC دسک تاپ با نمايش گر صفحه عريض استفاده مي کنيد، احتمالاً از مشکلات مقياس دهي در اين ترکيب احساس نااميدي مي نمائيد.
درايوهاي WDDM 1.1 امکان بهره گيري از برخي حالت هاي مقياس دهي جديد را بوجود آورده و نمايش گر صفحه عريض شما را وادار مي کنند تا همان نسبت تصويري پروژکتورتان را نمايش دهد.
اگر درايور WDDM 1.0 داشته باشيد، دسک تاپ هنوز Aero را با اجراي چيزي که مايکروسافت آن را با نام "Level9 10" مي نامد، نمايش خواهد داد. اين تکنيک از همان فراخواني هاي DirectX 10 براي WDM جهت راندوي دسک تاپ استفاده مي کند، اما آنها به يک زيرمجموعه از توابع مذکور ترجمه گرديده و به درايوهاي DirectX 9 کارت هاي قديمي تر فرستاده مي شوند.
انتظار نداشته باشيد که توسعه دهندگان بازي ها و يا هر برنامه نويس ديگري واقعاً از اين توابع استفاده نمايد. در واقع آنها صرفاً يک راه حل راندوي دسک تاپ هستند که مايکروسافت براي پشتيباني از سخت افزارهاي قديمي به کار مي گيرد.
خبر خوب اين است که تقريباً تمام کارت هاي گرافيکي و چيپ ست هاي گرافيکي مجتمع منطبق با DirectX 10 از درايوهاي WDDM 1.1 برخوردار هستند.

DirectX 11 ‏
 

DirectX 11 يا شايد بهتر باشد بگوئيم Direct3D 11، يکي ديگر از ويژگي هاي جديد Windows 7 به حساب مي آيد. شما مي توانيد آن را بعنوان يک ضميمه و ارتقاء براي Direct3D 10.1 به حساب آوريد زيرا تمام ويژگي هاي DirectX 10.1 هنوز در آن وجود دارند، اما چند مؤلفه جديد نيز به آنها اضافه شده اند. توجه داشته باشيد در حاليکه DirectX 11 با Windows 7 معرفي گرديد، اما هنوز بر روي ويندوز ويستا نيز قابل دسترسي خواهد بود.
بعضي از ويژگي هاي DirectX 11 حتي بر روي سخت افزار DirectX 10 نيز کار مي کنند ( البته با درايوهاي ارتقاء يافته).
يکي از اصلاحات کليدي نسخه جديد، پشتيباني بهتر از Multithreading است. امروزه، درايوهاي گرافيکي در سطح پائيني از Multithreading پشتيباني مي کنند، اما اين پشتيباني در همينجا به پايان مي رسد. خود DirectX Runtime هنوز "تک رشته اي " (Single- Threaded) است و غالباً مي تواند گلوگاهي باشد که از اجراي بازي ها در سريعترين وضعيت ممکن جلوگيري مي کند. در DirectX 11، منابع بطور نامتقارن و بصورت موازي، همزمان با اجرا بارگذاري مي شوند. توابع ترسيم و اعلام وضعيت نيز Multithreaded خواهند شد.
تمام اين موارد مي توانند به توزيع بار کاري "چيدمان گرافيکي" در ميان هسته هاي متعدد CPU کمک نموده و به توسعه دهندگان امکان دهند تا از پردازنده هاي چند هسته اي فعلي و آتي بهتر استفاده کنند. اين قابليت همچنين مي تواند به بازي ها امکان دهد تا از منابع بيشتري استفاده نمايند. سخت افزار DirectX 11از تمام اين موارد پشتيباني مي کند، اما حتي سخت افزارDirectX 10 با درايوهاي مناسب نيز مي تواند بهره گيري چشمگيري از اصلاحات Multithreaded جديد داشته باشد ( هر چند که به همان سطح عملکرد سخت افزارهاي DirectX 11 جديد نخواهد رسيد).
ضميمه مهم بعدي، Tessellation است. Tessellation يکي از ويژگي هايي است که به هيچوجه بر روي سخت افزار DirectX 10 پشتيباني نشد.
Tessellation به معناي شکستن يک مدل يا Mesh با تعداد پائيني از چند ضلعي ها به يک مدل با تعداد بسياري از چند ضلعي ها است که باعث مي شود مدل مورد نظر ظاهر بسيار هموارتري پيدا کرده و جزئيات بيشتري را نمايش دهد. شيوه هاي بسياري براي انجام اين کار در گرافيک هاي 3 بعدي وجود دارند و توابع Tessellation در DirectX 11 طراحي شده اند تا به اندازه کافي براي پشتيباني از اکثر آنها انعطاف پذير باشند. پيش از هر چيز،"Hull Shader" جديد، نقاط کنترل براي يک مسير را بعنوان ورودي دريافت مي کند.
توجه داشته باشيد که اين اولين نماد استفاده از داده هاي مبتني بر مسير در DirectX به حساب مي آيد. خروجي Hull Shader به مرحله "Tessellator" مي گويد که چه مقدار Tessellation مورد نياز است. خود Tessellator يک واحد تک وظيفه اي است که خروجي Hull Shader را دريافت کرده و هندسه اضافي را توليد مي نمايد.
سپس،"Domain Shader" موقعيت رأسي (Vertex Position) را از داده هاي Tessellation محاسبه مي کند که به Geometry Shader فرستاده مي شود. اين واحد کاملاً قابل برنامه ريزي است و به همين دليل شما مي توانيد خروجي Tessellated بهينه را بر حسب فاصله از دوربين، زاويه و ساير عواملي که احتمالاً توسط برنامه نويس موتور 3 بعدي انتخاب مي شوند، بدست آوريد.
مزيت تمام اين فرآيندها در اين است که امکان ايجاد يک هندسه پيچيده را بر روي کارت گرافيکي فراهم نموده و در عين حال، داده هايي که بايد بر روي گذرگاه منتقل گرديده و يا از حافظه بازيابي شوند نيز بسيار کوچکتر خواهند بود. اين يک ابر مجموعه (Superset) از ويژگي هاي واحد Tessellator پياده سازي شده در Xbox 360 است، بنابراين توسعه دهندگان بازي ها که قبلاً از تابع مذکور بر روي کنسول بازي مايکروسافت بهره گيري کرده اند مي توانند نتايج مشابهي را از همان مجموعه داده ها بر روي يک PC با سخت افزار DirectX 11 بدست آورند. از سوي ديگر، ما با Compute Shader مواجه هستيم. برنامه نويسان سال ها است که از سخت افزار گرافيکي 3Dبراي اجراي آنچه که نرم افزارهاي کاربردي "GP-GPU" ناميده مي شود استفاده مي کنند، اما استفاده از اينترفيس هاي Direct3D در بهترين حالت بسيار پرزحمت خواهد بود.
API و سخت افزار به هيچوجه براي نوعي از دسترسي عمومي به حافظه و داده هاي اشتراکي که نرم افزارهاي کاربردي غيرگرافيکي به آنها نياز دارند، طراحي نشده اند. Compute Shader اولين تلاش مايکروسافت براي حل اين مشکل به حساب مي آيد. حالا برنامه نويسان مي توانند ساختارهاي داده را بطور دلخواه صريحاً در حافظه نوشته و يا بخوانند. آنها مي توانند رجيسترها را در بين رشته ها به اشتراک گذاشته و همچنين داده ها را با يک کلاس ذخيره سازي "Groupshared" جديد به اشتراک بگذارند تا I/O اضافي را کاهش دهند.
نکته جالب اين است که استفاده از توابع Compute Shader نيازي به هيچگونه سوئيچينگ وظيفه بر روي کارت گرافيکي ندارد: شما در داخل درايور DirectX باقي خواهيد ماند و داده هاي توليد شده توسط Compute Shader مي توانند توسط مراحل گرافيکي API مورد استفاده قرار گيرند ( و بالعکس). اين وضعيت، قابليت مذکور را بيش از پيش براي توسعه بازيها مفيد مي نمايد. توابع نوع GP-GPU بطور چشمگيري باعث کاهش سرعت بازي ها مي شوند زيرا يک کارت گرافيکي ناچار است دائماً از وظيفه GP-GPU به جريان گرافيکي و بالعکس سوئيچ نمايد.
Compute Shaderها عملاً بر روي بعضي از سخت افزارهاي DirectX 10 ( با درايوهاي ارتقاء يافته) نيز اجرا مي شوند، اما پشتيباني از آنها نسبتاً محدود خواهد بود. سخت افزار DirectX 11 واقعي، دسترسي اختياري تري را در اختيار برنامه نويسان قرار داده، عمليات Atomic Intrinsic را اضافه کرده، شيوه هاي I/O جاري را افزايش داده و امکان تبديل سخت افزاري مابين بعضي از فرمت ها داده در طول I/O را فراهم مي کند.
مايکروسافت آزمايش هايي بر روي DirectX 11 با استفاده از سخت افزار DirectX 10 انجام داد. در مورد آزمايش تبديل فرمت Fast Fourier Transform آن ها، اين فناوري توانست نرم افزار کاربردي CUDA را با اختلاف اندکي پشت سر بگذارد، با اين فاصله عملکردي و با ارائه سخت افزارهاي جديدتري که عملاً براي DirectX 11 بهينه سازي شده اند، بطور چشمگيري افزايش يافت.
نرم افزارهاي کاربردي هدف براي Compute-Shaderها عبارتند از کدگذاري و کدگشايي ويدئويي، Ray-Tracing، الگوريتم هاي نورپردازي Radiosity, Post-Processing تصويري، جلوه هاي فيزيکي ( نظير سيستم ذرات)، انباشت جلوه هاي بافر و احتمالاً حتي AI و جنبه هاي فيزيکي در هسته بازي ها ( شايد يک برنامه نويس شجاع مايل باشدکه اينگونه سيستم هاي هسته اي بر روي سخت افزاري اجرا شوند که احتمالاً تنها از پايگاه نصب بسيار محدودي برخوردار است.)

پشتيباني گسترده تر
 

Windows 7 و DirectX 11 با تعداد بسيار زيادي از ويژگي ها و اصلاحات کوچکتر ديگر نيز همراه خواهند بود، هر چند که اين موارد به اندازه قابليت هايي که در بخش هاي قبلي به آنها اشاره کرديم تأثيرگذار نخواهند بود.
پيش از هر چيز، مي توان به پشتيباني از آداپتورهاي متعدد نامتجانس اشاره کرد. در ويندوز XP، شما مي توانستيد دو آداپتور گرافيکي متفاوت با دو پشته درايور متفاوت در حال اجرا داشته باشيد، به شرط آنکه هر يک از آن ها به نمايش گر مخصوص به خودش باشد. شما حتي مي توانستيد دسک تاپ خود را به اين ترتيب گسترش دهيد.
اين ويژگي در ويندوز ويستا حذف گرديد، اما با Windows 7 و درايورهاي WDDM 1.1 باز گرديد. توجه داشته باشيد که اين قابليت به شما اجازه نمي دهد تا از آداپتورهاي دو نام تجاري متفاوت به همراه يکديگر در پيکربندي هايي نظير SLI يا Crossfire استفاده کرده و سرعت راندوي يک نمايشگر را افزايش دهيد. در واقع، اين يک راه حل چند نمايشگري محض به حساب مي آيد.
DirectX 11 در عين حال شامل دو فرمت جديد فشرده سازي بافت است که تحت عنوان BC6 و BC 7 شناخته مي شوند. BC6 يک فشرده سازي 6:1 حذفي (Lossy، اما با کيفيت بالا) را براي بافتهاي (HDR ( High Dynamic Range‎ ‏ فراهم مي کند، در حاليکه BC 7 کيفيت بهبود يافته اي را به بهاي نسبت فشرده سازي پائين تر براي بافت هاي RGB + Alpha ارائه مي نمايد. BC 7 تنها نسبت 3:1 را براي بافت هاي RGB و نسبت4:1 را براي بافت هاي RGBA تأمين مي کند. اين فرمت هاي فشرده سازي جديد به سخت افزار جديد DirectX 11 نياز دارند، اما بر روي هر دو سيستم عامل ويندوز ويستا و Windows 7 قابل دسترسي خواهند بود.هر چند که اين موضوع في نفسه يک ويژگي گرافيکي به حساب نمي آيد، اما طرفداران کاربردهاي گرافيکي و ويديويي خوشحال خواهند شد که بدانند Windows Media Player جديد در Windows 7 از دامنه بسيار گسترده تري از Codecها برخوردار است که MPEG, DivX, Xvid MPEG4 ( شامل AVC يا همان AAC ،(‏H.264( هر چند که بطور آشکار از اقلام محافظت شده Apple در iTunes پشتيباني نخواهد کرد)، WMV و VMA را در بر مي گيرد.
مايکروسافت بر روي استانداردسازي شيوه برقراري ارتباط سيستم عامل با Codec هاي ويديويي و صوتي کار مي کند تا اضافه نمودن پشتيباني از ويژگي هاي شتابدهي سخت افزاري را براي برنامه نويسان آسان تر نموده و در نتيجه عملکرد اين فرآيندها را بهبود بخشد.
منبع: بزرگراه رايانه، شماره ي 137 .
Add Comments
Name:
Email:  
User Comments:
SecurityCode: Captcha ImageChange Image