شیدر برنامه کوچکی است که نحوه رسم نور، سطح، سایه و بسیاری از جلوه‌های تصویر را برای پردازنده گرافیکی مشخص می‌کند. اگر بازی این دستورها را پیش از ورود کامل آماده کند، نوار Shader Compilation دیده می‌شود؛ اگر بخشی هنگام بازی ساخته شود، ممکن است مکث‌های کوتاه یا stutter رخ دهد.

خلاصه پاسخ

  • کامپایل شیدر بیشتر پردازنده را درگیر می‌کند و ممکن است چند دقیقه طول بکشد.
  • ساخت شیدر هنگام بازی می‌تواند مکث کوتاه ایجاد کند.
  • کش معتبر باعث می‌شود نتیجه کامپایل در اجرای بعدی دوباره استفاده شود.
  • حذف بی‌دلیل کش یا تغییر مداوم درایور می‌تواند کامپایل دوباره را تحمیل کند.

شیدر چیست؟

شیدر مجموعه دستورهایی برای محاسبه بخشی از تصویر روی GPU است. مواد، نور، سایه، بازتاب و پس‌پردازش می‌توانند ترکیب‌های متعدد شیدر بسازند. کارت‌ها و رابط‌های گرافیکی مختلف خروجی یکسان آماده‌ای نمی‌پذیرند.

نام موتور، رابط گرافیکی و نسخه درایور را ثبت کنید. یک سطح خیس و همان سطح در نور متفاوت ممکن است به حالت‌های اجرایی متفاوت نیاز داشته باشد.

شیدر را با بافت یا فایل ویدئویی یکی ندانید.

کامپایل چه کاری انجام می‌دهد؟

کامپایل کد شیدر را به قالب قابل اجرای مناسب سخت‌افزار و درایور تبدیل می‌کند. این کار می‌تواند CPU و دیسک را درگیر کند و با افزایش تعداد ترکیب‌ها طولانی شود. نتیجه معمولاً برای استفاده بعدی در کش ذخیره می‌شود.

اجازه دهید فرایند پیش‌کامپایل بدون اجرای کار سنگین دیگر کامل شود. پس از نصب بازی بزرگ، استفاده صددرصدی چند هسته CPU در صفحه آماده‌سازی لزوماً خرابی نیست.

خاموش کردن اجباری بازی وسط نوشتن کش را عادت نکنید.

توضیح پایه این بخش در Epic Games، شیدر و فرایند کامپایل در Unreal Engine آمده است. هنگام استفاده از آن، دامنه همان منبع و شرایط مسئله خود را هم در نظر بگیرید.

چرا برخی بازی‌ها پیش از اجرا صبر می‌کنند؟

پیش‌کامپایل می‌کوشد مکث زمان بازی را به مرحله‌ای قابل پیش‌بینی منتقل کند. بازیکن چند دقیقه منتظر می‌ماند، اما هنگام دیدن ماده یا جلوه تازه نیاز کمتری به ساخت فوری شیدر دارد. پوشش کامل به طراحی بازی وابسته است.

نوار پیشرفت را تا پایان صبر کنید و فضای خالی کافی نگه دارید. بازی با جهان و مواد متنوع ممکن است شیدرهای بیشتری از یک بازی ساده دوبعدی داشته باشد.

فرایند طولانی را صرفاً با مقایسه دو بازی متفاوت قضاوت نکنید.

Shader Stutter چگونه ایجاد می‌شود؟

اگر حالت گرافیکی لازم هنگام بازی آماده نباشد، کامپایل فوری می‌تواند فریم را متوقف کند. این مکث ممکن است فقط بار اول ورود به منطقه یا دیدن یک جلوه رخ دهد و با افت پیوسته FPS فرق دارد. PSO caching برای کاهش همین مکث به کار می‌رود.

تکرار مکث در محل ثابت و تغییر آن در اجرای دوم را بررسی کنید. اگر برخورد نخست با انفجار مکث دارد ولی بار دوم روان است، کش شیدر یکی از احتمال‌هاست.

هر مکث بازی را به کمبود توان GPU نسبت ندهید.

توضیح پایه این بخش در Epic Games، کامپایل شیدر، مکث فریم و PSO Cache آمده است. هنگام استفاده از آن، دامنه همان منبع و شرایط مسئله خود را هم در نظر بگیرید.

مسیر تبدیل کد شیدر به کش آماده برای کارت گرافیک
مسیر تبدیل کد شیدر به کش آماده برای کارت گرافیک

کش شیدر چیست؟

کش نتیجه آماده کامپایل را نگه می‌دارد تا در اجرای بعدی دوباره ساخته نشود. بازی، موتور، درایور یا پلتفرم می‌توانند لایه‌های کش جدا داشته باشند. ناسازگاری نسخه جدید ممکن است کش قدیمی را بی‌اعتبار کند.

فضای کش و خطاهای دیسک را پیش از پاک‌سازی بررسی کنید. پاک کردن کش ممکن است مشکل فایل خراب را حل کند، اما اجرای بعدی موقتاً کندتر می‌شود.

کش را پس از هر افت فریم بدون دلیل حذف نکنید.

برای مطالعه موضوع نزدیک، راهنمای تفاوت افت فریم و Stutter را نیز ببینید.

چرا بعد از آپدیت دوباره کامپایل می‌شود؟

تغییر بازی، موتور، درایور یا تنظیمات گرافیکی می‌تواند ترکیب‌های لازم را عوض کند. سازنده برای جلوگیری از استفاده نتیجه ناسازگار، بخشی از کش را دوباره می‌سازد. این رفتار پس از آپدیت بزرگ رایج‌تر است.

تاریخ آپدیت و زمان نخستین اجرای پس از آن را مقایسه کنید. تعویض درایور کارت گرافیک می‌تواند حتی بدون آپدیت بازی، کش تازه لازم کند.

هر بار کامپایل پس از تغییر نسخه را نشانه خراب بودن نصب ندانید.

آیا نصب روی SSD کمک می‌کند؟

SSD بارگذاری و خواندن فایل‌ها را سریع‌تر می‌کند، اما زمان کامپایل فقط به دیسک وابسته نیست. توان CPU، تعداد شیدرها، درایور و نحوه اجرای موتور نقش دارند. SSD نمی‌تواند طراحی بد کامپایل زمان اجرا را به‌تنهایی اصلاح کند.

در Task Manager بار CPU و دیسک را جدا مشاهده کنید. اگر CPU پر و دیسک آرام است، گلوگاه اصلی احتمالاً خواندن فایل نیست.

برای مشکل پردازنده انتظار معجزه از SSD نداشته باشید.

توضیح پایه این بخش در Vulkan، معرفی Pipeline Cache آمده است. هنگام استفاده از آن، دامنه همان منبع و شرایط مسئله خود را هم در نظر بگیرید.

چه تنظیماتی را تغییر دهیم؟

ابتدا اجازه دهید کامپایل کامل شود و سپس فایل‌ها و درایور پایدار را بررسی کنید. کاهش برخی تنظیمات می‌تواند تعداد حالت‌ها را تغییر دهد، ولی راه‌حل عمومی برای همه بازی‌ها نیست. محدود کردن FPS حین آماده‌سازی نیز همیشه در دسترس نیست.

راهنمای رسمی همان بازی و یادداشت پچ را بخوانید. اگر مشکل دقیقاً پس از پچ شناخته‌شده شروع شده است، اصلاح سازنده از تنظیم تصادفی مؤثرتر است.

چند گزینه و درایور را هم‌زمان تغییر ندهید.

برای مطالعه موضوع نزدیک، راهنمای تنظیمات گرافیکی برای FPS بیشتر را نیز ببینید.

چه زمانی مشکل غیرعادی است؟

گیرکردن بدون پیشرفت، خطای تکراری، بسته شدن بازی یا کامپایل کامل در هر اجرا نیازمند بررسی است. فایل خراب، نبود دسترسی نوشتن، فضای کم یا مشکل درایور می‌تواند مانع ذخیره کش شود.

فایل‌های بازی را بررسی و گزارش خطا را ذخیره کنید. اگر هر بار از صفر آغاز می‌شود، مجوز پوشه کش یا نرم‌افزار پاک‌سازی خودکار را بررسی کنید.

پوشه‌های ناشناخته سیستم را برای آزاد کردن فضا حذف نکنید.

راهنمای عملی مرحله‌به‌مرحله

ابتدا نقطه شروع را دقیق مشخص کنید. «شیدر چیست؟» را با وضعیت خود پاسخ دهید و نام موتور، رابط گرافیکی و نسخه درایور را ثبت کنید. سپس «کامپایل چه کاری انجام می‌دهد؟» را بررسی کنید. اجازه دهید فرایند پیش‌کامپایل بدون اجرای کار سنگین دیگر کامل شود. اگر اطلاعات این دو مرحله کامل نیست، پیش از خرید، مصرف، اجرا یا پیگیری رسمی، همان اطلاعات را از سند، راهنمای معتبر یا بررسی مستقیم به دست آورید.

در مرحله اجرا، نوار پیشرفت را تا پایان صبر کنید و فضای خالی کافی نگه دارید. تکرار مکث در محل ثابت و تغییر آن در اجرای دوم را بررسی کنید. این دو اقدام باید به ترتیب انجام شوند، زیرا نتیجه مرحله نخست می‌تواند انتخاب مرحله دوم را تغییر دهد. بازی با جهان و مواد متنوع ممکن است شیدرهای بیشتری از یک بازی ساده دوبعدی داشته باشد. آنچه دیدید یا اندازه گرفتید را کوتاه و با تاریخ ثبت کنید تا بتوانید نتیجه را بعداً با شرایط مشابه مقایسه کنید.

در بازبینی میانی به پرسش «کش شیدر چیست؟» برگردید. فضای کش و خطاهای دیسک را پیش از پاک‌سازی بررسی کنید. سپس «چرا بعد از آپدیت دوباره کامپایل می‌شود؟» را جدا بسنجید و تاریخ آپدیت و زمان نخستین اجرای پس از آن را مقایسه کنید. پاک کردن کش ممکن است مشکل فایل خراب را حل کند، اما اجرای بعدی موقتاً کندتر می‌شود. تغییر هم‌زمان چند عامل تشخیص این‌که کدام اقدام مفید بوده را دشوار می‌کند؛ برای هر تصمیم یک دلیل و یک نشانه قابل مشاهده بنویسید.

برای تصمیم پایانی، «آیا نصب روی SSD کمک می‌کند؟» و «چه تنظیماتی را تغییر دهیم؟» را کنار هم بگذارید. در Task Manager بار CPU و دیسک را جدا مشاهده کنید. راهنمای رسمی همان بازی و یادداشت پچ را بخوانید. اگر نتیجه همچنان مبهم است، فایل‌های بازی را بررسی و گزارش خطا را ذخیره کنید. اگر هر بار از صفر آغاز می‌شود، مجوز پوشه کش یا نرم‌افزار پاک‌سازی خودکار را بررسی کنید. کار را با معیار آغازین مقایسه کنید و روشن بنویسید ادامه می‌دهید، یک جزء را اصلاح می‌کنید یا برای بررسی تخصصی توقف می‌کنید.

چطور نتیجه را بسنجیم و تصمیم بگیریم؟

پیش از اقدام، یک وضعیت پایه بنویسید: اکنون چه چیزی می‌بینید، چه زمانی رخ می‌دهد و چه محدودیتی دارید. پاسخ پرسش «شیدر چیست؟» را با یک نمونه واقعی کامل کنید. مواد، نور، سایه، بازتاب و پس‌پردازش می‌توانند ترکیب‌های متعدد شیدر بسازند. کارت‌ها و رابط‌های گرافیکی مختلف خروجی یکسان آماده‌ای نمی‌پذیرند. سپس معیار موفقیت را مشخص کنید؛ برای نمونه کاهش دفعات، کوتاه شدن زمان، بهتر شدن کیفیت یا روشن شدن یک تصمیم. بدون معیار پایه، تغییر بعدی بیشتر بر حافظه و احساس لحظه‌ای تکیه می‌کند.

در مرحله بعد فقط یک عامل را تغییر دهید. نوار پیشرفت را تا پایان صبر کنید و فضای خالی کافی نگه دارید. نتیجه را در شرایط تا حد امکان مشابه بسنجید و کنار آن بنویسید چه چیزهایی ثابت نبوده‌اند. فرایند طولانی را صرفاً با مقایسه دو بازی متفاوت قضاوت نکنید. اگر چند تغییر هم‌زمان انجام شوند، حتی نتیجه خوب هم نشان نمی‌دهد کدام اقدام مؤثر بوده است. این روش برای موضوع‌های روزمره، فنی و آموزشی به یک اندازه از تصمیم عجولانه جلوگیری می‌کند.

برای تفسیر نتیجه، تفاوت میان هم‌زمانی و علت را حفظ کنید. بازی، موتور، درایور یا پلتفرم می‌توانند لایه‌های کش جدا داشته باشند. ناسازگاری نسخه جدید ممکن است کش قدیمی را بی‌اعتبار کند. یک بار مشاهده می‌تواند سرنخ بسازد، اما برای نتیجه‌گیری کافی نیست. پاک کردن کش ممکن است مشکل فایل خراب را حل کند، اما اجرای بعدی موقتاً کندتر می‌شود. اگر نتیجه با انتظار شما فرق داشت، داده را حذف نکنید؛ زمان، محیط، ابزار و شرایط انجام را دوباره بررسی کنید و توضیح محتمل دیگری را کنار فرض نخست بنویسید.

حد توقف را نیز از ابتدا تعیین کنید. برای مشکل پردازنده انتظار معجزه از SSD نداشته باشید. اگر نشانه خطر، هزینه پیش‌بینی‌نشده یا افت واضح کیفیت دیده شد، ادامه دادن فقط برای کامل کردن برنامه منطقی نیست. در Task Manager بار CPU و دیسک را جدا مشاهده کنید. توقف به معنی شکست نیست؛ گاهی نشان می‌دهد مسئله به اطلاعات بیشتر، ابزار مناسب‌تر یا نظر متخصص نیاز دارد. تصمیم ایمن باید امکان بازگشت و اصلاح داشته باشد.

در پایان، نتیجه را در سه جمله ثبت کنید: چه کاری انجام شد، چه چیزی تغییر کرد و گام بعدی چیست. فایل خراب، نبود دسترسی نوشتن، فضای کم یا مشکل درایور می‌تواند مانع ذخیره کش شود. اگر شواهد کافی نیست، با صراحت وضعیت را «نامشخص» بنویسید و مشخص کنید برای روشن شدن چه داده‌ای کم دارید. اگر هر بار از صفر آغاز می‌شود، مجوز پوشه کش یا نرم‌افزار پاک‌سازی خودکار را بررسی کنید. این جمع‌بندی کوتاه کمک می‌کند دفعه بعد همان مسیر بی‌نتیجه تکرار نشود و تصمیم تازه بر سابقه قابل بررسی بنا شود.

مرحلهپرسشاقدام
شروعشیدر چیست؟نام موتور، رابط گرافیکی و نسخه درایور را ثبت کنید.
بررسیکش شیدر چیست؟فضای کش و خطاهای دیسک را پیش از پاک‌سازی بررسی کنید.
تصمیمچه زمانی مشکل غیرعادی است؟فایل‌های بازی را بررسی و گزارش خطا را ذخیره کنید.
جمع‌بندی

شیدر برنامه کوچکی است که نحوه رسم نور، سطح، سایه و بسیاری از جلوه‌های تصویر را برای پردازنده گرافیکی مشخص می‌کند. اگر بازی این دستورها را پیش از ورود کامل آماده کند، نوار Shader Compilation دیده می‌شود؛ اگر بخشی هنگام بازی ساخته شود، ممکن است مکث‌های کوتاه یا stutter رخ دهد. پوشه‌های ناشناخته سیستم را برای آزاد کردن فضا حذف نکنید. تجربه واقعی بازی و فهرست تغییرات سازنده را کنار نام نسخه بگذارید؛ برچسب بازاریابی به‌تنهایی درباره کیفیت نسخه داوری نمی‌کند.

سوالات متداول
شیدر چیست؟
شیدر مجموعه دستورهایی برای محاسبه بخشی از تصویر روی GPU است. مواد، نور، سایه، بازتاب و پس‌پردازش می‌توانند ترکیب‌های متعدد شیدر بسازند. کارت‌ها و رابط‌های گرافیکی مختلف خروجی یکسان آماده‌ای نمی‌پذیرند. شیدر را با بافت یا فایل ویدئویی یکی ندانید.
Shader Stutter چگونه ایجاد می‌شود؟
اگر حالت گرافیکی لازم هنگام بازی آماده نباشد، کامپایل فوری می‌تواند فریم را متوقف کند. این مکث ممکن است فقط بار اول ورود به منطقه یا دیدن یک جلوه رخ دهد و با افت پیوسته FPS فرق دارد. PSO caching برای کاهش همین مکث به کار می‌رود. هر مکث بازی را به کمبود توان GPU نسبت ندهید.
چرا بعد از آپدیت دوباره کامپایل می‌شود؟
تغییر بازی، موتور، درایور یا تنظیمات گرافیکی می‌تواند ترکیب‌های لازم را عوض کند. سازنده برای جلوگیری از استفاده نتیجه ناسازگار، بخشی از کش را دوباره می‌سازد. این رفتار پس از آپدیت بزرگ رایج‌تر است. هر بار کامپایل پس از تغییر نسخه را نشانه خراب بودن نصب ندانید.
چه زمانی مشکل غیرعادی است؟
گیرکردن بدون پیشرفت، خطای تکراری، بسته شدن بازی یا کامپایل کامل در هر اجرا نیازمند بررسی است. فایل خراب، نبود دسترسی نوشتن، فضای کم یا مشکل درایور می‌تواند مانع ذخیره کش شود. پوشه‌های ناشناخته سیستم را برای آزاد کردن فضا حذف نکنید.
منابع

نوشته قبلی