VSync — یہ کیا ہے، کام کرنے کا اصول اور ترتیب

مصنف: IT Sectr اشاعت: 2026-04-01 مطالعے کا وقت: 8 منٹ

VSync (عمودی ہم آہنگی) — ایک ٹیکنالوجی جو GPU کے ہر نئے فریم کے آؤٹ پٹ کو ڈسپلے ریفریش ریٹ کے ساتھ ہم آہنگ کرتی ہے، تصویر کے پھٹنے کو ختم کرتی ہے۔ Apple Metal دستاویزات کے مطابق، موبائل آلات پر ہموار رینڈرنگ کے لیے VBlank کے ساتھ ہم آہنگی لازمی ہے۔ اسکرین ٹیئرنگ اس وقت ہوتی ہے جب فریم عمودی ریفریش کے دوران اپ ڈیٹ ہوتا ہے، اور VSync اس ملاوٹ کو روکتا ہے۔

اہم نکات

  • VSync — VBlank کے انتظار کے ذریعے GPU کو ڈسپلے کے ساتھ ہم آہنگ کرنے کا طریقہ کار
  • اسکرین ٹیئرنگ — تصویر کا نظر آنے والا ٹوٹنا جب فریم اسکین آؤٹ کے وسط میں تبدیل ہوتا ہے
  • ڈبل بفرنگ — فرنٹ بفر اور بیک بفر کے ساتھ VSync کے نفاذ کا بنیادی طریقہ
  • ان پٹ لیگ — VSync کا ضمنی اثر، صارف کے عمل اور ڈسپلے کے درمیان تاخیر بڑھاتا ہے
  • انطباقی ہم آہنگی — VSync کا جدید متبادل جو اس کی خامیوں کو دور کرتا ہے

VSync کیا ہے

VSync (عمودی ہم آہنگی) — ایک ہارڈویئر-سافٹ ویئر طریقہ کار جو GPU کو نیا فریم آؤٹ پٹ کرنے سے پہلے عمودی خالی سگنل (VBlank) کا انتظار کرنے پر مجبور کرتا ہے۔ VSync کے بغیر، GPU کسی بھی وقت فریم بھیج سکتا ہے، یہاں تک کہ جب ڈسپلے موجودہ فریم کو بنا رہا ہو، جس سے افقی لکیر کے ساتھ تصویر پھٹ جاتی ہے۔

موبائل آلات پر، VSync گرافکس ڈرائیور اور آپریٹنگ سسٹم کی سطح پر نافذ کیا جاتا ہے۔ iOS Metal کے ذریعے VBlank ہم آہنگی استعمال کرتا ہے، Android SurfaceFlinger اور BufferQueue کے ذریعے۔ عمودی ہم آہنگی فعال ہونے پر، ایپلیکیشن کا FPS ڈسپلے ریفریش ریٹ — ڈیوائس ماڈل کے مطابق 60، 90 یا 120 Hz — سے تجاوز نہیں کر سکتا۔

عمودی ہم آہنگی کی اصطلاح CRT مانیٹر کے کام کرنے کے اصول سے آئی ہے، جہاں ایک الیکٹران بیم اوپر سے نیچے لائن بہ لائن تصویر بناتا تھا۔ فریم مکمل ہونے کے بعد، بیم اوپری بائیں کونے پر واپس آتا تھا — اس لمحے کو عمودی خالی کہا جاتا تھا۔ جدید LCD اور OLED ڈسپلے نے اس اصطلاح کو برقرار رکھا ہے، حالانکہ وہ جسمانی طور پر مختلف طریقے سے کام کرتے ہیں۔

عمودی ہم آہنگی کیسے کام کرتی ہے

GPU بیک بفر میں فریم رینڈر کرتا ہے، جبکہ ڈسپلے فرنٹ بفر سے پڑھتا ہے۔ VSync اس بات کو یقینی بناتا ہے کہ بفر سویپ صرف VBlank کے لمحے ہو — جب ڈسپلے موجودہ فریم دکھانا ختم کر چکا ہو اور اگلے کے لیے تیار ہو۔ اس طریقہ کار کو VBlank ہم آہنگی کے ساتھ ڈبل بفرنگ کہا جاتا ہے۔

ڈبل بفرنگ کا طریقہ کار

ڈبل بفرنگ دو بفر استعمال کرتی ہے: اسکرین پر دکھایا جانے والا فرنٹ بفر اور بیک بفر جس میں GPU موجودہ فریم لکھتا ہے۔ جب فریم تیار ہوتا ہے، بفر آپس میں تبدیل ہو جاتے ہیں۔ VSync فعال ہونے پر، یہ تبدیلی قریب ترین VBlank تک ملتوی کر دی جاتی ہے۔ اگر فریم VBlank سے پہلے تیار ہو تو GPU بیکار رہتا ہے، جس سے کارکردگی کم ہوتی ہے لیکن ٹیئرنگ ختم ہو جاتی ہے۔

cpp
// OpenGL — WGL_EXT_swap_control کے ذریعے VSync فعال کرنا
HDC hdc = wglGetCurrentDC();
PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT =
    reinterpret_cast<PFNWGLSWAPINTERVALEXTPROC>(
        wglGetProcAddress("wglSwapIntervalEXT"));
wglSwapIntervalEXT(1); // 1 = VSync فعال، 0 = غیر فعال

VBlank انتظار کا وقت

VBlank — موجودہ فریم کی آخری لائن اور اگلے فریم کی پہلی لائن کے درمیان ایک مختصر وقفہ۔ اس لمحے کے دوران، ڈسپلے پکسلز کو اپ ڈیٹ نہیں کرتا اور بفر سویپ بغیر آرٹیفیکٹ کے ہوتا ہے۔ VBlank کی مدت ریفریش ریٹ پر منحصر ہے: 1080p ڈسپلے پر 60 Hz پر، VBlank تقریباً 1.4 ms رہتا ہے۔ اگر GPU VBlank سے پہلے رینڈرنگ مکمل نہیں کر پاتا، فریم چھوڑ دیا جاتا ہے اور ڈسپلے پچھلے فریم کو ایک اور سائیکل دکھاتا ہے — اسے رکاوٹ کے طور پر محسوس کیا جاتا ہے۔

ٹرپل بفرنگ تیسرا بفر شامل کرکے GPU بیکاری کے مسئلے کو حل کرتی ہے۔ GPU اگلے فریم کو فوری طور پر رینڈر کرنا شروع کر سکتا ہے چاہے بیک بفرز میں سے ایک VBlank کا انتظار کر رہا ہو۔ یہ VSync کے ساتھ FPS بڑھاتا ہے لیکن ایک اضافی فریم تاخیر کا اضافہ کرتا ہے۔ موبائل آلات پر، ٹرپل بفرنگ کچھ گیم انجنوں میں اور میل باکس موڈ کے ذریعے Vulkan میں استعمال ہوتی ہے۔

VSync کے بغیر اہم مسائل

VSync بند ہونے پر زیادہ سے زیادہ FPS اور کم سے کم ان پٹ لیگ ملتا ہے، لیکن بصری آرٹیفیکٹ کی قیمت پر۔ موبائل گیمز اور ہموار اینیمیشن والی ایپلیکیشنز کے لیے، VSync اور اسے بند کرنے کے درمیان انتخاب تصویر کی وضاحت اور کنٹرول کی ردعمل کے درمیان سمجھوتہ ہے۔

اسکرین ٹیئرنگ

اسکرین ٹیئرنگ — ایک افقی تقسیم جہاں اسکرین کا اوپری حصہ پچھلا فریم دکھاتا ہے اور نچلا حصہ پہلے سے اگلا فریم دکھاتا ہے۔ یہ اس وقت ہوتا ہے جب GPU اسکین آؤٹ کے وسط میں بفر تبدیل کرتا ہے۔ موبائل آلات پر، ٹیئرنگ خاص طور پر تیز اسکرولنگ یا زیادہ فریم ریٹ والے متحرک مناظر میں نمایاں ہوتی ہے۔ OLED ڈسپلے اپنے فوری ردعمل کے ساتھ ٹیئرنگ کو LCD کے مقابلے میں زیادہ متضاد بناتے ہیں۔

ٹیئرنگ کی شدت FPS اور ریفریش ریٹ کے تناسب پر منحصر ہے۔ 60 Hz ڈسپلے پر 60 FPS پر، ٹیئرنگ ایک جامد لکیر کے طور پر ظاہر ہوتی ہے، جبکہ 60 Hz پر 300 FPS پر — متعدد لہراتی ٹوٹ پھوٹ کے طور پر جو اوپر سے نیچے حرکت کرتی ہیں۔ FPS جتنا زیادہ ریفریش ریٹ کے مقابلے میں، اتنے ہی زیادہ ٹوٹ پھوٹ اور وہ اتنے ہی زیادہ نمایاں ہوتے ہیں۔

ان پٹ لیگ

ان پٹ لیگ VSync کے ساتھ — بٹن دبانے اور اسکرین پر نتیجہ دیکھنے کے درمیان تاخیر۔ عمودی ہم آہنگی اوسطاً ایک فریم تاخیر (60 Hz پر 16.7 ms) کا اضافہ کرتی ہے، اور ٹرپل بفرنگ کے ساتھ — دو فریم تک۔ عام ایپلیکیشنز کے لیے یہ تاخیر ناقابلِ ادراک ہے، لیکن شوٹر، فائٹنگ اور تال والے گیمز کے لیے یہ بہت اہم ہے: پیشہ ور 8 ms کی تاخیر بھی محسوس کرتے ہیں۔

NVIDIA (2024) کی تحقیق کے مطابق، CS:GO میں VSync کے بغیر 60 FPS پر اوسط ان پٹ لیگ 22 ms ہے، اور VSync کے ساتھ — 39 ms۔ 144 FPS پر، فرق بالترتیب 14 بمقابلہ 18 ms تک کم ہو جاتا ہے۔ موبائل پلیٹ فارمز پر، VSync ان پٹ لیگ کم اہم ہے کیونکہ ٹچ ان پٹ میں ہارڈویئر ٹچ اسکرین تاخیر (10–30 ms) اضافی ہم آہنگی تاخیر کو چھپا دیتی ہے۔

موبائل ڈویلپمنٹ میں VSync کی ترتیب

موبائل ڈویلپمنٹ میں، VSync کو گرافکس API، گیم انجنوں اور OS سسٹم سیٹنگز کے ذریعے کنٹرول کیا جاتا ہے۔ iOS کم کنٹرول فراہم کرتا ہے، Android Vulkan اور OpenGL ES کے ذریعے زیادہ فراہم کرتا ہے۔ موڈ کا انتخاب ایپلیکیشن کی قسم پر منحصر ہے: گیمز، UI یا ویڈیو۔

Unity اور Unreal Engine میں VSync

Unity QualitySettings.vSyncCount سیٹنگ استعمال کرتا ہے: 0 — بند، 1 — ہر VBlank پر VSync، 2 — ہر دوسرے VBlank پر (FPS آدھا)۔ Unreal Engine میں، VSync کو r.VSync کنسول کمانڈ اور DefaultEngine.ini کے ذریعے کنٹرول کیا جاتا ہے۔ موبائل بلڈز کے لیے، Unity میں VSync بند کرکے کسٹم FPS محدود کنندہ استعمال کرنے کی سفارش کی جاتی ہے، کیونکہ Android SurfaceFlinger میں بلٹ ان VSync غیر متوقع تاخیر پیدا کر سکتا ہے۔

csharp
// Unity — VSync اور FPS کنٹرول
void Awake()
{
    // 0 = VSync غیر فعال، 1 = VSync فعال
    QualitySettings.vSyncCount = 0;
    // VSync کی بجائے کسٹم FPS محدود کنندہ
    Application.targetFrameRate = 60;
}

Vulkan اور Metal میں VSync

Vulkan VkSwapchainPresentInfo اور presentMode کے ذریعے مکمل کنٹرول دیتا ہے: VK_PRESENT_MODE_FIFO_KHR — کلاسک VSync، VK_PRESENT_MODE_MAILBOX_KHR — انتظار کے بغیر ٹرپل بفرنگ، VK_PRESENT_MODE_IMMEDIATE_KHR — بغیر ہم آہنگی کے۔ Metal iOS میں CAMetalLayer.displaySyncEnabled کے ذریعے VSync کو کنٹرول کرتا ہے۔ iOS 14 سے شروع کرتے ہوئے، Apple آرکیڈ طرز کے گیمز کے علاوہ تمام ایپلیکیشنز کے لیے ڈیفالٹ طور پر displaySyncEnabled = true استعمال کرنے کی سفارش کرتا ہے۔

موڈتفصیلتاخیر
FIFOVBlank انتظار کے ساتھ کلاسک VSync1 فریم
Mailboxٹرپل بفرنگ، پرانے فریموں کو ہٹانا1–2 فریم
Immediateہم آہنگی کے بغیر، زیادہ سے زیادہ FPS0 فریم

VSync کے بغیر FPS محدود کرنا

FPS محدود کنندہ — VSync کا ایک متبادل جہاں ایپلیکیشن VBlank کے انتظار کے بغیر پروگراماتی طور پر فریم ریٹ کو محدود کرتی ہے۔ یہ نقطہ نظر پیش قیاسی تاخیر دیتا ہے اور ڈسپلے ریفریش ریٹ پر منحصر نہیں ہوتا۔ Android پر، FPS محدود کرنا Choreographer کے ذریعے نافذ کیا جاتا ہے، iOS پر — CADisplayLink کے ذریعے دستی آؤٹ پٹ ٹائمنگ کنٹرول کے ساتھ۔

VSync اور جدید ہم آہنگی ٹیکنالوجیز

روایتی VSync میں ایک بنیادی خامی ہے: یہ ڈسپلے کے مقررہ ریفریش ریٹ سے منسلک ہے۔ اگر GPU 60 Hz ڈسپلے پر 45 FPS آؤٹ پٹ کرتا ہے، VSync 45 فریم نہیں دکھا سکتا — یہ 30 دکھاتا ہے (ہر دوسرے VBlank کو چھوڑ کر) یا غیر مساوی وقفوں پر 60 اور 30 کے درمیان بدلتا ہے۔ یہ رکاوٹ پیدا کرتا ہے، جو ٹیئرنگ سے زیادہ گیمنگ کے تجربے کو خراب کرتا ہے۔

انطباقی ہم آہنگی (FreeSync, G-Sync, Apple ProMotion) ایپلیکیشن FPS کے مطابق ڈسپلے ریفریش ریٹ کو متحرک طور پر تبدیل کرکے اس مسئلے کو حل کرتی ہے۔ اگر ایپلیکیشن 47 FPS آؤٹ پٹ کرتی ہے، ڈسپلے 47 Hz پر سوئچ کرتا ہے — ہر فریم ٹیئرنگ یا رکاوٹ کے بغیر بالکل ایک بار دکھایا جاتا ہے۔ iOS میں ProMotion خود بخود 24 سے 120 Hz تک فریکوئنسی منتخب کرتا ہے، ہمواری اور بجلی کی کھپت میں توازن پیدا کرتا ہے۔

موبائل آلات پر، انطباقی ہم آہنگی معیار بن رہی ہے: iPad Pro (2017+) ProMotion کے ساتھ، LTPO ڈسپلے والے Android فلیگ شپ (Samsung Galaxy S23 Ultra, Google Pixel 8 Pro) 1 سے 120 Hz تک متحرک ریفریش ریٹ کو سپورٹ کرتے ہیں۔ ڈویلپر کے لیے، اس کا مطلب ہے کہ روایتی معنوں میں VSync کو سسٹم مینجمنٹ سے بدل دیا جاتا ہے — صرف targetFrameRate سیٹ کرنا کافی ہے، اور OS خود ہمواری اور بیٹری کی زندگی کے بہترین توازن کے لیے ریفریش ریٹ کو ایڈجسٹ کرتا ہے۔

اکثر پوچھے جانے والے سوالات

کیا موبائل گیمز میں ہمیشہ VSync کو فعال رکھنا چاہیے؟

نہیں۔ متحرک گیمز (شوٹر، فائٹنگ) کے لیے، VSync بغیر کسی اہم فائدے کے ان پٹ لیگ بڑھاتا ہے — موبائل OLED اسکرینوں پر ٹیئرنگ چھوٹے ڈسپلے سائز کی وجہ سے کم نمایاں ہوتی ہے۔ عام گیمز اور UI کے لیے، VSync ہمواری کے ادراک کو بہتر بناتا ہے۔

VSync موبائل ڈیوائس کی بیٹری کو کیسے متاثر کرتا ہے؟

VSync بجلی کی کھپت کو کم کرتا ہے کیونکہ GPU غیر ضروری فریم رینڈر نہیں کرتا۔ VSync بند ہونے پر، GPU زیادہ سے زیادہ فریکوئنسی پر کام کرتا ہے اور ہر غیر دکھایا گیا فریم توانائی ضائع کرتا ہے اور صارف کو فائدہ پہنچائے بغیر ڈیوائس کو گرم کرتا ہے۔

VSync اور FPS محدود کنندہ میں کیا فرق ہے؟

VSync فریم آؤٹ پٹ کو ڈسپلے کے VBlank کے ساتھ ہم آہنگ کرتا ہے، جبکہ FPS محدود کنندہ ایپلیکیشن کوڈ میں رینڈرنگ فریکوئنسی کو محدود کرتا ہے۔ FPS محدود کنندہ ٹیئرنگ کو ختم نہیں کرتا لیکن اسکرین ریفریش ریٹ سے منسلک ہوئے بغیر پیش قیاسی تاخیر دیتا ہے۔

VSync فعال ہونے پر FPS آدھا کیوں ہو سکتا ہے؟

جب GPU VBlank سے پہلے فریم مکمل نہیں کر پاتا، VBlank چھوڑ دیا جاتا ہے اور فریم دو ریفریش سائیکلوں کے لیے دکھایا جاتا ہے۔ 60 Hz پر، یہ 30 FPS دیتا ہے۔ ٹرپل بفرنگ GPU کو انتظار کے بغیر اگلا فریم شروع کرنے کی اجازت دے کر اس اثر کو کم کرتی ہے۔

کیا iOS اور Android انطباقی ہم آہنگی کو سپورٹ کرتے ہیں؟

ہاں۔ iOS ProMotion (iPad Pro, iPhone 13 Pro+) 24–120 Hz متحرک فریکوئنسی سپورٹ کرتا ہے۔ Android LTPO پینلز کے ذریعے 1–120 Hz سپورٹ کرتا ہے۔ ڈویلپر کو اسے دستی طور پر منظم کرنے کی ضرورت نہیں — سسٹم خود بخود بہترین فریکوئنسی منتخب کرتا ہے۔

خلاصہ

  • VSync — اسکرین ٹیئرنگ کو ختم کرنے والا GPU-ڈسپلے ہم آہنگی کا طریقہ کار
  • VBlank انتظار کے ساتھ ڈبل بفرنگ — عمودی ہم آہنگی کا کلاسک نفاذ
  • اسکرین ٹیئرنگ — VSync بند ہونے کا اہم مسئلہ، خاص طور پر زیادہ FPS پر نمایاں
  • ان پٹ لیگ — VSync کی قیمت، ایک سے دو فریم تاخیر کا اضافہ
  • ٹرپل بفرنگ رکاوٹ کم کرتی ہے لیکن ان پٹ لیگ بڑھاتی ہے
  • انطباقی ہم آہنگی (ProMotion, LTPO) — متحرک ریفریش ریٹ کے ساتھ VSync کا جدید متبادل
  • موبائل گیمز کے لیے، پیش قیاسی تاخیر کے لیے VSync کی بجائے FPS محدود کنندہ استعمال کریں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں