עבור לתוכן

דיון מרוכז- קריעת תמונה, V-Sync ונפילות FPS

Featured Replies

פורסם

לאחר בדיקה וקצת חשיבה, הבנתי מה המאמר מנסה לאמר. עם טריפל באפר אפשר להפעיל ויסינק בלי לאבד ביצועים או לאג. בלי ויסינק, טריפל באפר זהה למעשה לרנדר אהד (רק אם תפעיל ויסינק למעשה תקבל טריפל באפרינג אמיתי).

  • תגובות 284
  • צפיות 160.8k
  • נוצר
  • תגובה אחרונה
פורסם

אה

עכשיו אני מבין מה disable one frame thread lag באנריל 3

אם מפעילים זה נותן פחות לאג אם לא אז יותר פריימים

דרך אגב אתם יודעים אולי למה באנריל 3 יש כל כך הרבה mouse lag?

פורסם

שימוש אגרסיבי ברנדר אהד כנראה

פורסם
  • מחבר

לאחר בדיקה וקצת חשיבה, הבנתי מה המאמר מנסה לאמר. עם טריפל באפר אפשר להפעיל ויסינק בלי לאבד ביצועים או לאג. בלי ויסינק, טריפל באפר זהה למעשה לרנדר אהד (רק אם תפעיל ויסינק למעשה תקבל טריפל באפרינג אמיתי).

אז בעצם הבעייה שלנו עם הכתבה של אננדטק היתה בעיקר בהבנת הנקרא ... אוקיי. זה כבר נשמע טוב יותר :xyxthumbs:

אבל עדיין TB+vsync נותן לאג די מורגש, שאפשר לצמצם עם הורדת ערך ה-render ahead, ל.. נאמר "2"

אבל כנראה שיכול גם לשפר לאג במקרים מסויימים. מתוך ויקיפדיה:

if the system is interactive (for example, a simulator or a video game), and using triple buffering as a fixed order reservoir, triple buffering increases the average delay between the input controls being read and visual feedback being presented to the user. In the other case where frames can be dropped without being displayed, triple buffering can actually lower response time by including input data which wasn't available when the previous dropped frames were rendered.

http://en.wikipedia.org/wiki/Triple_buffering

אז בנוגע למשפט - where frames can be dropped without being displayed, לאיזה מצב הם מתכוונים בדיוק ?

פורסם

הבעיה נובעת מכך שגם רנדר אהד הוא למעשה טריפל באפרינג (הוא למעשה באפרינג במובן הטהור יותר של המילה- פריימים שחוצצים) ההבדל הוא ביכולת להפיל תמונות ישנות

כש TB+vsync מופעל כרטיס המסך ירנדר עד שתי תמונות קדימה, ותמונה על המסך תתחלף רק בתיאום עם הריפרש רייט. אם הוא סיים לרנדר שתי תמונות ועדיין המסך לא סיים להציג תמונה- הוא יפיל את התמונה הישנה יותר וירנדר חדשה, וכך למעשה יוריד את הלאג (לא תראה את התמונה הישנה הלא מעודכנת, שהרי עברו בערך 1/60 שניה מאז שהיא נוצרה).

אם רנדר אהד מופעל (נניח על 3) עם Vsync כרטיס המסך ירנדר עד 3 תמונות קדימה- אבל הוא לא יוכל להפיל את הישנות! ככה אתה עשוי לראות תמונה בת 1/60-2/60 שניות. אם הוא סיים לרנדר 3 תמונות, והתמונה על המסך עוד לא התחלפה, במקום לעדכן את התמונות הישנות הוא פשוט יחכה למסך- ככה גם תקבל ירידה מסוימת בביצועים (כרטיס המסך מחכה למסך) וגם לאג.

לסיכום- אם מפעילים טריפל באפרינג (כלומר מאפשרים למסך להפיל תמונות) צריך לשים לב שרנדר אהד מבוטל*, כי אחרת כרטיס המסך לא יוכל להפיל פריימים ישנים ולמעשה לא נרוויח את השיפור. בכל מקרה- בלי ויסינק הרווח מבאפרינג כלשהו הוא די זניח, לכל היותר הוא ימנע נפילות FPS חריגות (לכרטיס יש פריים ישן להציג בזמן שהוא מרנדר פריים איטי יותר).

*הערה: אני לא סגור איך זה מיושם בכל משחק ובכל דרייבר. יתכן שהגדרת הרנדר אהד מקבלת עדיפות ואז טריפל באפרינג אף פעם לא באמת יפעל כל עוד רנדר אהד מופעל, יתכן שהוא מבטל לפי הצורך, בייחוד בתוכנה כמו d3doverider.

פורסם

רגע אז הרנדר האד הזה זה ה pre render/queue size limit? יש שם מ5 עד 0

כשאתה אומר לבטל אתה מתכוון ל0?

פורסם
  • מחבר

כן לדעתי הוא מתכוון ל- pre render/queue size limit (או בדריבר של אנוידיה נקרא maximum pre-rendered frames)

מהנסיון שלי TB ו-prerender limit הולכים יחד. ז"א, אם TB פועל, עדיין ערך ה-prerender limit משפיע על ה-delay של ה-input.

קשה לי להאמין שאחד מבטל את השני או משהו כזה. ואם נקבע אותו על "0" זה יכול לגרום לבעיות, הדעה הרווחת ממליצה כנגד. לפחות ב-directx

פורסם

המינוח מבלבל. מה שצריך לדעת זה האם אפשר להפיל תמונות מהבאפר. אם אתה אומר שpre render/queue size limit משפיע על הלאג, אז כרטיס המסך לא יכול להפיל תמונות ישנות, מסקנה- לא פועל TB.

פורסם
  • מחבר

אבל זהו שזה לא מסתדר לי כי נתקלתי במצבים בהם אילוץ ה-TB מאפשר ל-FPS לנוע בחפשיות בשילוב vsync (בניגוד ל-DB),

וההגדרה של prerender limit עדיין השפיעה על הלאג במקרה הזה. זה אומר ששניהם פועלים. :nixweiss:

אני צריך לבצע עוד כמה בדיקות מעמיקות ליתר ביטחון ... אני לא רוצה להטעות אף אחד, בכל זאת...

פורסם

אני חושב שאתה עדיין לא סגור על ההבדל בין TB ל(RA (render ahead. הם אותו דבר! ההבדל היחיד שב TB אפשר להפיל פריימים ישנים, ב RA לא. אין דבר כזה שניהם פועלים- או שאפשר להפיל פריימים או שלא.

ברגע שהפעלת Vsync כל מדידת פריימים תהיה חסרת ערך. לא ברור לי למה אתה מתכוון ב FPS שנע בחופשיות

פורסם

הוא מדבר על הקטע של הVSYNC

מתי שאנחנו מפעילים TB הVSYNC לא חותך לנו את הFPS

פורסם

כש Vsync פועל, המקסימום הוא 60 FPS. מה המספר שתראה תלוי בתוכנה, אם היא סופרת רק את הפעמים שהבאפר הקידמי מתחלף, אז תראה FPS נע עד 60.

פורסם

אנחנו מדברים על זה שלפעמים יש עומס בתמונה והFPS נופל מ60 והVSYNC הופך את זה ל30, 25, 20 וכו'

וכשאנחנו מפעילים את הTB בd3doverrider זה הופך את זה לפחות פגיע כמו 50\59 FPS

פורסם

זו פגיעת הביצועים שנובעת מדאבל באפר. בגלל זה דאבל באפר+ ויסינק = רע

פורסם

בכל מקרה חוץ ממני ומסינדרום יש עוד מלא אנשים כמונו בפורומים שונים בחו"ל שהעידו שהם שמו את הערך של הrender ahead איך שאתה לא קורה לזה על 2 הם קיבלו פחות לאג מהשילוב של TB ו VSYNC

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים