G-Sync انویدیا چیست و چطور مشکل ناهمگامی کارت گرافیک و مانیتور را حل میکند
کمپانی NVIDIA یکی از تولیدکنندگان بزرگ تراشه در دنیاست و به ویژه در تولید کارت گرافیکها خوش درخشیده است. در صنعت بازیهای رایانهای هم انویدیا کارش را به نحوه احسن انجام داده و هر از گاهی با خلاقیتهای نوین مرتبط با دنیای گرافیک که محصول انویدیاست آشنا میشویم. G-Sync هم یکی از دستاوردهای جدید انویدیا برای هماهنگشدن سرعت نوسازی نمایشگر و کارت گرافیک است. به این صورت که فریمهای رندر شده، درست هماهنگ با عوضشدن تصویر نمایشگر، به آن داده شوند.
در ادامه به بررسی این تکنولوژی جدید، طرز کار و سختافزار لازم برای استفاده از آن و نتیجهی آن در بازیها میپردازیم. ببنیم این بار انویدیا چطور صنعت بازیهای رایانهای را تکامل میبخشد. با زومیت همراه باشید.
هنگامی که جدیدترین نسخهی درایور کارت گرافیک NVIDIA را دریافت و نصب میکنید، بستهای نسبتاً کمحجم به نام GeForce Experience هم در کنار درایور قابل نصب است. انویدیا در این بسته، مجموعهای از امکانات ساده را برای بازیخورهای پیسی در نظر گرفته تا رضایت کاربران را به دست آورد. از آن مهمتر این است که انویدیا با توجه به اینکه نسل جدید کنسولهای بازی یعنی PS4 و Xbox One از نظر قدرت پردازش گرافیکی، از کارت گرافیکهای قدرتمند بازار فاصلهی زیادی دارند، قصد گسترش دنیای بازیهای پیسی را دارد. به علاوه پردازندهی گرافیکی این دو کنسول، هر دو توسط کمپانی رقیب یعنی AMD تولید شده و سودی نصیب انویدیا نمیشود.
از امکانات GeForce Experience، معرفی بهترین تنظیمات گرافیکی در بازیهای مختلف است. انویدیا بازیها را روی کارت گرافیکهای مختلف خود اجرا کرده و در نهایت بهترین تنظیمات را برای هر مدل در این نرمافزار معرفی میکند.
در دنیای کنسول، تنظیمات گرافیکی معنی خاصی ندارد؛ ولیکن در پیسی با توجه به متفاوتبودن کارت گرافیکها و توان پردازشی آنها، در هر بازی باید تنظیمات را در حد کافی پایین آورد تا کاملاً روان اجرا شود.
اما در نهایت سرعت اجرای بازیها و نرمافزارهای گرافیکی، همیشه در حد مطلوب نیست و از آن مهمتر، متغیر است. G-Sync چیزی است که انویدیا برای غلبه بر مشکل بریدگی فریم معرفی کرده که در ادامه به آن میپردازیم.
پدیدهی بریدگی و مأموریت G-Sync
G-Sync از جمله جدیدترین تکنولوژیهای معرفی شده توسط انویدیاست که به صورت بستهی سختافزاری عرضه میشود. موضوع به صورت ساده این است که نرخ خروجی فریمها از کارت گرافیک با نرخ نوسازی تصویر در نمایشگر برابر نیست و لذا این دو مقوله به شکل ناهمزمان پیش میروند. به مثال زیر توجه کنید:
فرکانس پنل یک مانیتور یا تلویزیون 60 هرتز است؛ 60 تصویر در یک ثانیه. کارت گرافیک با آخرین توان خود مشغول رندر کردن فریمهاست و با اتمام مراحل رندرشدن هر یک از فریمها، سریعاً آن را در اختیار نمایشگر قرار میدهد. در این صورت ممکن است فریم جدید زمانی از راه برسد که نمایشگر در حال نمایش فریم رندر شدهی قبلی است.
اتفاقی که میافتد این است که بخشی از تصویر نمایشگر، فریم قبلی را نشان میدهد و بخش دیگر، فریم جدید را و با توجه به تفاوت دو فریم، یک و حتی چند خط افقی در تصویر نمایشگر دیده میشود که احتمالاً در بازیها، با آن مواجه شدهاید.
نمونهای اغراقآمیز از این رخداد را در تصویر زیر مشاهده میکنید، 2 بریدگی در یک فریم تصویر:
مأموریت جی-سینک دقیقاً این است که کارت گرافیک و نمایشگر را با هم سینک یا همگام کند.
VSync نرمافزاری در مقابل G-Sync سختافزاری
شاید اولین سؤال بازیخورهای حرفهای این باشد که آیا با استفاده از VSync نمیتوان بریدگی را از بین برد؟ چه نیازی به تجهیزات سختافزاری است؟
موضوع این است که همگامسازی عمودی یا Vertical Sync که بریدگی را حذف میکند، یک مشکل جدید به وجود میآورد. Stuttering یا رواننبودن نمایش تصویر که میتوان به آن گیرکردن یا وقفه هم گفت.
با فعال کردن V-Sync در یک بازی، کارت گرافیک در کار خود وقفههایی ایجاد میکند و فریم را زمانی رندر کرده و تحویل نمایشگر میدهد که نمایشگر در حال تعویض تصویر است.
مثلاً در نمودار زیر فریم اول رندر شده و در اولین اسکن نمایشگر نمایش داده میشود. به عبارت دیگر Draw 1 در (Scan (1 نمایش داده میشود. فریم دوم به پردازش سنگینتری نیاز دارد. مثلاً یک صحنهی شلوغ، پر از انفجار و نورپردازی و سایهزنی سنگین است. بنابراین دیر رندر میشود. نمایشگر به اسکن بعدی خود رسیده ولی هنوز خبری از دومین فریم نیست؛ لذا همان فریم اول را در اسکن بعدی خود نمایش میدهد.
فریم دوم در اسکن بعدی نمایشگر آمادهی نمایش است؛ ولی توجه کنید که فریم بعدی با تأخیر نسبتاً زیاد رندر خواهد شد؛ استاتر یا وقفه یا گیر هم به این تأخیر بیمورد اشاره میکند.
اما G-Sync روش دیگری دارد و کاری میکند که نمایشگر منتظر کارت گرافیک شود و فریم جدید را تحویل بگیرد و سریعاً اسکن جدید خود را آغاز کند و آن را نمایش دهد. بنابراین بریدگی و وقفه، هیچ کدام اتفاق نمیافتد و تصویر کاملاً روان و یکنواخت خواهد بود.
توجه کنید که G-Sync تنها در مورد کارت گرافیکهای انویدیا و نمایشگرهایی قابل استفاده است که از G-Sync پشتیبانی کنند.
روش کار G-Sync
جی-سینک یک راه حل سختافزاری برای مشکل ناهمگام بودن کارت گرافیک و نمایشگر است. انویدیا اسکیلکنندهی نمایشگر را با برد G-Sync جابجا میکند و کاری به پنل و کنترلر تایمینگ آن ندارد. منظور از کنترلر تایمینگ یا TCON، کنترلکنندهی زمانبندی پنل است و اسکیلکننده هم مأموریت بزرگ یا کوچککردن تصویر و در واقع تغییر رزولوشن را بر عهده دارد. توجه کنید برد G-Sync فعلاً دارای واحد اسکیلکننده نیست؛ ولیکن در جایی قرار میگیرد که باید یک اسکیلکننده هم حضور داشته باشد تا در صورت پخش رزولوشنهای پایینتر یا بالاتر، آنها را به رزولوشن اصلی نمایشگر، تغییر دهد. اما فقدان واحد اسکیلکننده مشکل بزرگی نیست؛ چرا که کارت گرافیکهای امروزی در استفاده از پنلهای مختلف و انجام اسکیل بسیار قوی شدهاند.
اساس کار G-Sync بر دستکاری بازههایی است که نمایشگر بازهی تاریکی را طی میکند. این بازهها را VBLANK یا Vertical Blanking Interval میگویند. پس از اینکه آخرین خط افقی از یک فریم روی نمایشگر نمایش داده میشود، یک بازهی تاریکی وجود دارد و پس از آن اولین خط افقی از تصویر بعدی در نمایشگر به تصویر کشیده خواهد شد. نمایشگر در بازهی تاریکی کاملاً استاتیک است و به عبارت دیگر، تصویر فعلی را نمایش میدهد و هیچ تحرکی ندارد. بازهی تاریکی، یادگار دوران مانیتورهای حجیم CRT است و در LCDهای امروزی هم وجود دارد؛ گرچه از نظر تکنیکی، وجود آن ضروری نیست. G-Sync با دستکاری VBLANK کاری میکند که نمایشگر فریم فعلی را نگه دارد و صبر کند که کارت گرافیک فریم بعدی را تحویل بدهد.
بنابراین به صورت خلاصه، G-Sync از نمایشگر میخواهد که نمایش تصویر فعلی را ادامه دهد تا زمانی که فریم بعدی توسط کارت گرافیک آماده شود و سپس نمایشگر به نمایش آن بپردازد. این تمدید نمایش تنها با دستکاری بازهی VBLANK انجام میشود. به تصویر زیر توجه کنید تا موضوع روشن شود:
در حال حاضر بیشترین زمانی که میتوان نمایش یک فریم را تمدید کرد، 33.3 میلیثانیه، معادل سرعت 30 هرتز است. اگر فریم بعدی پس از 33.3 میلیثانیه حاضر نشده باشد، ماژول G-Sync به نمایشگر میگوید که فریم قبلی را مجدداً ترسیم کند. توجه کنید که محدودیت سرعت در حال حاضر 6.94 میلیثانیه معادل 144 هرتز است که به سریعترین پنل فعلی مربوط میشود و ربطی به G-Sync ندارد. در آینده ممکن است پنلهایی با سرعت بیشتر عرضه شوند.
ساختار برد G-Sync
در این برد الکترونیکی از FPGA و 768 مگابایت حافظهی DDR3 استفاده شده است. انویدیا مدعی است که حافظهی موجود روی برد، خیلی بیشتر از حافظهی بخش اسکیلکنندهی نمایشگرها نیست. اگر هم بیشتر باشد، برای تأمین پهنای باند، بالاتر و البته ضروری است. یکی از کاربردهای مهم حافظه در برد G-Sync، این است که فریم قبلی تصویر را نگه دارد و برای مقایسه با فریم بعدی جهت انجام محاسبات اُوِردرایو، از آن استفاده میکند.
اولین ماژول G-Sync تنها از DisplayPort 1.2 پشتیبانی میکند؛ ولی در آیندهی نزدیک، HDMI و DVI هم پشتیبانی میشوند؛ چرا که محدودیتی در این رابطه وجود ندارد. برد فعلی از صدا هم پشتیبانی نمیکند؛ ولیکن انویدیا قول داده که در نسخههای بعدی صدا هم انتقال داده شود. در واقع صدایی که از اسپیکرهای داخلی نمایشگر خارج شود، چندان مطلوب بازیخورها نیست و انویدیا به همین علت به انتقال صدا توجه نکرده است. آخرین محدودیت G-sync فعلی، اتصال نمایشگرها از طریق LVDS است. انویدیا تصمیم گرفته که در نسخهی بعدی ماژول G-Sync از V-by-One هم پشتیبانی کند. پشتیبانی از eDP هم محدودیتی ندارد.
اثر G-Sync بر سرعت اجرا
تأثیر فعالکردن G-Sync روی سرعت اجرا بسیار کم است؛ ولیکن صفر نیست. موضوع این است که پس از رندرشدن هر یک از فریمها، پردازندهی گرافیکی باید صبر کند تا وضعیت نمایشگر بررسی شود. اگر بازهی فعلی VBLANK باشد، مشکلی نیست؛ اما اگر نمایشگر در حال تعویض و نمایش یک فریم باشد، باید بیشتر صبر کند و سپس شروع به رندرکردن فریم بعدی کند.
مدت زمان لازم برای بررسی اوضاع نمایشگر حدود 1 میلیثانیه است؛ بنابراین با استفاده از G-Sync سرعت اجرا نسبت به حالتی که V-Sync قدیمی را فعال میکردیم، 3 تا 5 درصد کمتر خواهد بود. اما خبر خوب این است که انویدیا روی زمان بررسی کار میکند و میخواهد آن را به کلی از بین ببرد!
اولین نمونه از کاربرد عملی G-Sync با یک مانیتور ایسوسی
انویدیا برای پیشنمایش تکنولوژی جدید خود، نمایشگر VG248QE ایسوس را انتخاب کرده، یک پنل TN با رفرش ریت (نرخ نوسازی یا فرکانس پنل) 144 هرتز که برای بازیخورها بسیار دوستداشتنی است. رزولوشن نمایشگر هم 1080p است و قیمتی بین 250 تا 280 دلار دارد. با این هزینهی پایین نمیتوان انتظار یک پنل IPS با کیفیت داشت که زاویه دید و کیفیت رنگها در آن عالی است. اما نگران نباشید؛ چرا که G-Sync روی پنلهای IPS هم به خوبی کار خواهد کرد. حتی ممکن است به زودی پنلهای 4K با بهرهمندی از تکنولوژی G-Sync در بازار نمایان شوند؛ چرا که DisplayPort 1.2 کاملاً پشتیبانی شده و به راحتی میتوان نمایشگری با رزولوشن 4K و فرکانس 60 هرتز را از طریق G-Sync هدایت کرد. اما فعلاً کمی زود است و باید منتظر رونمایی از نمایشگرهای 2K یا به عبارتی نمایشگرهایی با رزولوشن 2560 در 1440 پیکسل و البته از نوع IPS باشیم.
پس از باز کردن این نمایشگر، سازوکار سادهی انویدیا را شاهد هستیم:
اسپیکرها به جایی وصل نیستند؛ چرا که فعلاً G-Sync از انتقال صدا پشتیبانی نمیکند. به نظر میرسد که انویدیا برای این نمایشگر، ابتدا یک برد مدار چاپی تهیه کرده و سپس ماژول G-Sync را روی آن مونتاژ کرده است.
روی برد، 3 ماژول 2 گیگابیتی (250 مگابایت) حافظهی DDR3 مشهود است اما FPGA پشت یک هیتسینک برای خنککاری، پنهان شده است. پس از برداشتن هیتسینک، مشخص میشود که FPGA استفاده شده، Altera Arria V GX است.
الزامات استفاده از G-Sync
برای استفاده از G-Sync شرایط کاملاً روشن است. نمایشگر با پشتیبانی از G-Sync و کارت گرافیک بهتر از GTX 650 Ti که دارای خروجی DisplayPort 1.2 و بالاتر باشد. توجه کنید بازی باید به صورت تمامصفحه اجرا شوند؛ چرا که در غیر اینصورت V-Sync جای G-Sync را میگیرد. ویندوز 7 یا 8.1 هم الزام آخر است.
نسخهی 331.93 درایور انویدیا از قابلیت G-Sync پشتیبانی میکند و در صورتی که تمام الزامات مهیا شده باشد، روبروی گزینهی نوسازی عمودی یا Vertical sync گزینهای به نام G-SYNC دیده میشود. فرکانس نمایشگر قابل انتخاب است. برای V-Sync فرکانس 60 هرتز پیشنهاد شده؛ ولیکن در مورد G-Sync استفاده از 144 هرتز توصیه شده است.
یک مادربورد با چیپست Z87 و یک کارت گرافیک GTX 760 برای آزمودن G-Sync در بازیهای مختلف انتخاب شده و تنظیمات بازیها به گونهای انجام شده که سرعت اجرا در محدودهی بین 30 تا 60 فریم بر ثانیه باشد.
توجه کنید اگر سرعت اجرا با نرخ نوسازی نمایشگر برابر باشد -مثلاً اعداد 60، 120 یا 144- استفاده از G-Sync نتیجهی خاصی نخواهد داشت. اگر سرعت اجرا کمتر از 30 فریم بر ثانیه باشد هم نمایشگر مجبور است فریمها را تکرار کند و لذا نمایش با وقفه و گیر همراه خواهد شد.
مقایسهی ویدیویی G-Sync و V-Sync
فلسفهی وجود V-Sync و G-Sync را توضیح دادیم. هدف برطرفکردن دو معضل جدی یعنی وقفه و بریدگیهای افقی است. به نظر میرسد که G-Sync یک راه حل خوب است؛ اما قبل از بررسی عملی نمیتوان اظهار نظر قطعی کرد.
برای اینکه ببینید G-Sync در عمل چه قدر مؤثر واقع میشود به ویدیوی زیر توجه کنید. روزولوشن این ویدیو 720p است و بهتر است فایل 36 مگابایتی ویدیو را دانلود کرده و به صورت تمامصفحه و با دقت زیاد بررسی کنید.
ویدیو به بازی Bioshock infinite مربوط میشود. طبعاً اگر V-Sync را نافعال کنیم، بریدگیها ظاهر میشوند. اما اگر آن را فعال کنیم هم وقفههایی به وجود میآید. وقفهها در حالتی که V-Sync با فرکانس 60 هرتز فعال باشد، در برخی صحنهها کاملاً مشخص هستند. بهتر است خودتان قضاوت کنید:
لینک دانلود ویدیو
Assassin's Creed IV
حتی با کارت گرافیک GTX 760 هم میتوان این بازی را به صورت روان اجرا کرد. اما اگر V-Sync نافعال شده باشد، بریدگی در 40 درصد بالایی تصویر بسیار زیاد و آزاردهنده خواهد بود.
اگر فرکانس روی 60 هرتز تنظیم شده باشد و از V-Sync استفاده شود، وقفه در صحنههای شلوغ کاملاً مشهود است؛ چرا که سرعت اجرا به 40 تا 51 فریم بر ثانیه افت میکند. در این صحنهها با حرکت دوربین به اطراف، سرعت اجرا کاملاً متفاوت میشوند و وقفهها مشخصتر خواهند بود.
با استفاده از G-Sync نتیجه کاملاً متفاوت است؛ هیچ وقفهای دیده نمیشود. سرعت اجرای بین 40 تا 60 فریم بر ثانیه، محدودهی مطلوب G-Sync است و نتیجه بسیار خوب خواهد بود.
Batman: Arkham Origins
باز هم اگر V-Sync نافعال باشد و سرعت اجرا هم خوب باشد، مشکل بریدگی جدی نیست؛ ولیکن در برخی بخشهای بازی بریدگی کاملاً مشخص است. در این بازی کمتر بریدگی میبینیم؛ ولیکن شدت آن بیشتر است.
با فعال کردن V-Sync هم اثر تغییرات شدید سرعت اجرا کاملاً مشخص است؛ وقفههای بسیار زیادی در بازی دیده میشود.
در بازی بتمن، استفاده از G-Sync نتیجهای بسیار عالی دارد. با توجه به مشکلات بزرگ V-Sync فعال و نافعال، انتظار نمیرود که G-Sync هم خوب و کامل عمل کند؛ اما اینطور نیست. G-Sync اکثر وقفهها را حذف میکند.
توجه کنید برخی وقفهها به محدودیت پردازندهی اصلی، ترسیم بافت و غیره مربوط میشود و نمیتوان با G-Sync موضوع را حل کرد؛ چرا که G-Sync عملاً فرآیند رندر توسط کارت گرافیک و نمایش فریمها را یکنواختتر میکند. برای حلکردن سایر مشکلات میتوان از پردازندهی اصلی و کارت گرافیک قویتر استفاده کرد.
Sleeping Dogs
این بازی کمی سنگینتر است؛ چرا که سرعت اجرا بین 30 تا 45 فریم بر ثانیه نوسان میکند. حتی به 28 فریم بر ثانیه هم میرسد و سؤال مهم این است که G-Sync در سرعتهای کمتر از 30 فریم بر ثانیه، مجبور میشود که برخی فریمها را تکرار کند. در این صورت چه اتفاقی خواهد افتاد؟
اولین تأثیر G-Sync کاهش سرعت اجرا از 27-28 به 25-26 است. اثر تکرار فریمها مشخص است؛ پردازندهی گرافیکی مجبور شده کمی بیکار بماند و فریم جدیدی رندر نکند و همین موضوع ساده، سرعت اجرا را کاهش داده است. تکرار شدن فریمها هم روانبودن بازی را کمی بدتر کرده و در نهایت به این نتیجه میرسیم که باید قدرت کارت گرافیک انتخابی کمی بیشتر باشد.
Dota 2 و Starcraft II
در این دو بازی تقریباً استفاده از G-Sync و V-Sync یک نتیجه دارد؛ هر دو خوب عمل میکنند؛ چرا که سرعت اجرا معمولاً 60 فریم بر ثانیه است.
Bioshock Infinite با فرکانس 144 هرتز
در این حالت هم اگر V-Sync فعال باشد، وقفهها بسیار زیاد هستند و اگر نافعال باشد، صحنههای ابتدایی Benchmatk داخل بازی، مملو از بریدگی خواهد بود.
استفاده از G-Sync باز هم مؤثر واقع میشود و اکثر مشکلات را حل میکند.
جمعبندی: عملکرد، قیمت و آیندهی G-Sync
G-Sync انویدیا یک راه حل سختافزاری برای حلکردن دو مشکل جدی است. در بازیها سرعت اجرا و به عبارتی رندر فریمها توسط کارت گرافیک با سرعت اسکن یا به عبارتی نمایش فریمها در نمایشگر یکسان نیست. در این صورت اولین مشکل بریدگی خواهد بود. بریدگی زمانی رخ میدهد که کارت گرافیک نمیتواند فریم بعدی را به موقع رندر کرده و تحویل دهد. از این رو بخشی از فریم قبلی به همراه بخشی از فریم بعدی در یک اسکن نمایشگر نمایش داده میشوند و بریدگی افقی در مرز دو فریم مشهود است.
مشکل دیگر استفاده از V-Sync است. بریدگی حذف میشود؛ اما کارت گرافیک باید برای شروعکردن رندر فریم بعدی، به اسکن نمایشگر توجه کند و صبر کند. همین صبرکردن وقفه ایجاد میکند.
G-Sync زمانبندی اسکن نمایشگر را به گونهای تغییر میدهد که با کاملشدن رندر فریمها توسط کارت گرافیک همزمان باشد. در این صورت نه وقفهای اتفاق میافتد و نه بریدگیها نمایان میشوند.
در عمل استفاده از G-Sync از آنچه پیشبینی میشود بسیار جالبتر است؛ چرا که بازیخورهای پیسی، در بازیهای سنگین به روانی اجرا عادت ندارند و وقفه و بریدگی برایشان عادی شده است.
لذا G-Sync در سرعت اجرای بین 40 تا 60 فریم بر ثانیه عملکرد فوقالعادهای دارد.
در سرعتهای کمتر از 35 فریم بر ثانیه، G-Sync کارت گرافیک را بیش از پیش معطل میکند و سرعت اجرا کمی کاهش مییابد. مشکل دوم تکرار فریمها و به عبارتی بروز وقفه است. بنابراین در این موارد نمیتوان روی کمک G-Sync حساب باز کرد.
در سرعتهای بالاتر از 60 فریم بر ثانیه هم اثر G-Sync کم است. بنابراین اگر یک کارت گرافیک سریع دارید، شاید بهتر باشد از G-Sync صرفنظر کنید. گرچه در بازیهای سنگین امروزی، سرعت اجرا نوسان زیادی دارد و گاهی ممکن است چند برابر کمتر شود.
هزینهی برد G-Sync که اولین بار روی نمایشگر VG248QE ایسوس به کار رفته، حدود 120 دلار است و قیمت نمایشگر ساده را از 280 دلار به 400 دلار افزایش میدهد. در ادامهی کار هزینهها کاهش مییابد و استفاده از این برد اضافی در نمایشگرهای رده اولی که قیمت بالاتر دارند، اقتصادیتر خواهد شد.
نظر شما در مورد G-Sync، طرز کار و آیندهی آن چیست؟ آیا ممکن است G-Sync هم به عنوان یکی دیگر از خلاقیتهای انویدیا در عرصه گرافیک، در آیندهی نزدیک عمومیت پیدا کند؟