[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:figure:fr":3,"public-menus:all":45,"post:why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained:fr":531,"related:post:why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained:fr:1":1741},{"statusCode":4,"data":5,"message":44},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":14,"robotsIndex":15,"socialLinks":14,"reservedSlugs":14,"seoPolicy":16},"figure","fr","en","https:\u002F\u002Ffigure.rocks","info@stajic.de","Figure Rocks","\u002Ffavicon-32x32.png","",null,true,{"branding":17,"relatedContent":18,"crossDomainLinks":19},{"logoUrl":12},{"enabled":15},[20,23,26,29,32,35,38,41],{"url":21,"label":22,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":24,"label":25,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fstajic.de","stajic.de",{"url":27,"label":28,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fbazify.com","bazify.com",{"url":30,"label":31,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fbazify.de","bazify.de",{"url":33,"label":34,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002F2mesta.com","2mesta.com",{"url":36,"label":37,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002F2mesta.de","2mesta.de",{"url":39,"label":40,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fbazify.at","bazify.at",{"url":42,"label":43,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fweb-hoch3.de","web-hoch3.de","Portal settings resolved",[46],{"id":47,"name":48,"location":49,"isActive":15,"isDefault":15,"items":50},2,"Main Menu","sidebar",[51,65,189,282,358,424],{"id":52,"title":53,"url":61,"target":62,"icon":63,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":64},"1",{"de":54,"en":55,"es":56,"fr":57,"it":55,"ru":58,"sr":59,"zh":60},"Startseite","Home","Inicio","Accueil","Главная","Početna","首页","\u002F","_self","i-lucide-home",[],{"id":66,"title":67,"url":76,"target":62,"icon":77,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":78},"3",{"de":68,"en":69,"es":70,"fr":71,"it":72,"ru":73,"sr":74,"zh":75},"Spiele","Games","Juegos","Jeux","Giochi","Игры","Igre","游戏","\u002Fgames","i-lucide-gamepad-2",[79,92,107,121,135,148,162,176],{"id":80,"title":81,"url":76,"target":62,"icon":90,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":91},"3-1",{"de":82,"en":83,"es":84,"fr":85,"it":86,"ru":87,"sr":88,"zh":89},"Spiele-Hub","Games Hub","Centro de juegos","Hub de jeux","Hub Giochi","Игровой центр","Centar za igre","游戏中心","i-lucide-layout-grid",[],{"id":93,"title":94,"url":103,"target":62,"icon":104,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":106},"1-1",{"de":95,"en":96,"es":97,"fr":98,"it":99,"ru":100,"sr":101,"zh":102},"Neu & Angesagt","New & Trending","Novedades & Tendencias","Nouveautés & Tendances","Novità & Tendenze","Новинки & тренды","Novo & Popularno","新品 & 热门","\u002Fnews\u002Fgaming-news","i-lucide-sparkles","custom",[],{"id":108,"title":109,"url":118,"target":62,"icon":119,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":120},"1-2",{"de":110,"en":111,"es":112,"fr":113,"it":114,"ru":115,"sr":116,"zh":117},"Angebote","Deals","Ofertas","Offres","Offerte","Акции","Ponude","优惠","\u002Fdeals","i-lucide-badge-percent",[],{"id":122,"title":123,"url":132,"target":62,"icon":133,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":134},"1-3",{"de":124,"en":125,"es":126,"fr":127,"it":128,"ru":129,"sr":130,"zh":131},"Release-Kalender","Release Calendar","Calendario de lanzamientos","Calendrier des sorties","Calendario delle uscite","Календарь релизов","Kalendar izdanja","发布日历","\u002Freleases","i-lucide-calendar-days",[],{"id":136,"title":137,"url":145,"target":62,"icon":146,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":147},"3-2",{"de":138,"en":139,"es":140,"fr":141,"it":142,"sr":143,"zh":144},"amiibo-kompatible Spiele","amiibo-Compatible Games","Juegos compatibles con Amiibo","Jeux compatibles Amiibo","Giochi compatibili con amiibo","Amiibo kompatibilne igre","Amiibo 兼容游戏","\u002Freference\u002Fcompatibility","i-lucide-check-circle-2",[],{"id":149,"title":150,"url":159,"target":62,"icon":160,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":161},"3-3",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Wie amiibo funktionieren","How amiibo work","Cómo funcionan los Amiibo","Comment fonctionnent les Amiibo","Come funzionano gli Amiibo","Как работают Amiibo","Kako Amiibo rade","Amiibo 如何运作","\u002Fgames\u002Fhow-amiibo-unlocks-work","i-lucide-puzzle",[],{"id":163,"title":164,"url":173,"target":62,"icon":174,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":175},"3-4",{"de":165,"en":166,"es":167,"fr":168,"it":169,"ru":170,"sr":171,"zh":172},"Beste Amiibo pro Spiel","Best amiibo per Game","Mejores Amiibo por juego","Meilleurs Amiibo par jeu","Migliori Amiibo per gioco","Лучшие Amiibo по играм","Najbolji Amiibo po igri","各游戏最佳 Amiibo","\u002Fgames\u002Fbest-amiibo-per-game","i-lucide-award",[],{"id":177,"title":178,"url":186,"target":62,"icon":187,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":188},"3-5",{"de":179,"en":180,"es":181,"fr":182,"it":183,"ru":184,"sr":185},"Freischaltbares & Belohnungen","Unlockables & Rewards","Desbloqueables & Recompensas","Déblocables & Récompenses","Sbloccabili & Ricompense","Разблокировки & награды","Otključavanja & nagrade","\u002Fgames\u002Funlocks-and-benefits","i-lucide-gift",[],{"id":190,"title":191,"url":199,"target":62,"icon":200,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":201},"4",{"de":192,"en":193,"es":194,"it":195,"ru":196,"sr":197,"zh":198},"Sammeln","Collecting","Coleccionismo","Collezionismo","Коллекционирование","Kolekcionarstvo","收藏","\u002Fcollecting","i-lucide-gem",[202,213,227,240,254,268],{"id":203,"title":204,"url":211,"target":62,"icon":90,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":212},"4-1",{"de":205,"en":206,"fr":207,"it":208,"ru":209,"zh":210},"Sammel-Hub","Collecting Hub","Hub de collecte","Hub di raccolta","Центр сбора","收藏中心","\u002Famiibo\u002Fcollecting",[],{"id":214,"title":215,"url":224,"target":62,"icon":225,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":226},"4-2",{"de":216,"en":217,"es":218,"fr":219,"it":220,"ru":221,"sr":222,"zh":223},"Kaufberatung","Buying Guide","Guía de compra","Guide d'achat","Guida all'acquisto","Гид покупателя","Vodič za kupovinu","购买指南","\u002Famiibo-library\u002Famiibo-buying-smart","i-lucide-shopping-bag",[],{"id":228,"title":229,"url":237,"target":62,"icon":238,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":239},"4-3",{"de":230,"en":230,"es":231,"fr":232,"it":233,"ru":234,"sr":235,"zh":236},"Fake vs Real","Falso vs. Real","Faux vs Vrai","Falso vs Vero","Фейк vs Оригинал","Lažno vs Pravo","真假对比","\u002Famiibo-library\u002Famiibo-buying-smart\u002Favoid-fake-listings","i-lucide-scan",[],{"id":241,"title":242,"url":251,"target":62,"icon":252,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":253},"4-4",{"de":243,"en":244,"es":245,"fr":246,"it":247,"ru":248,"sr":249,"zh":250},"Aufbewahrung & Präsentation","Storage & Display","Almacenamiento & exhibición","Rangement & Présentation","Contenitori & Esposizione","Хранение & витрины","Odlaganje & izlaganje","存储 & 展示","\u002Famiibo-library\u002Famiibo-care-and-storage","i-lucide-box",[],{"id":255,"title":256,"url":265,"target":62,"icon":266,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":267},"4-5",{"de":257,"en":258,"es":259,"fr":260,"it":261,"ru":262,"sr":263,"zh":264},"Preisübersicht","Price Guide","Guía de precios","Guide des prix","Guida ai prezzi","Гид по ценам","Cenovnik","价格指南","\u002Fcollections\u002Fprice-guide","i-lucide-bar-chart-3",[],{"id":269,"title":270,"url":279,"target":62,"icon":280,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":281},"4-6",{"de":271,"en":272,"es":273,"fr":274,"it":275,"ru":276,"sr":277,"zh":278},"Raritäten","Rare Finds","Hallazgos únicos","Trouvailles rares","Pezzi rari","Редкие находки","Retki nalazi","稀有发现","\u002Fcollections\u002Frare-and-notable","i-lucide-trophy",[],{"id":283,"title":284,"url":292,"target":62,"icon":293,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":294},"5",{"de":285,"en":286,"es":287,"fr":286,"it":288,"ru":289,"sr":290,"zh":291},"Technik","Tech","Tecnología","Tecnologia","Технологии","Tehnologija","科技","\u002Ftech","i-lucide-cpu",[295,306,318,331,344],{"id":296,"title":297,"url":292,"target":62,"icon":90,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":305},"5-1",{"de":298,"en":298,"es":299,"fr":300,"it":301,"ru":302,"sr":303,"zh":304},"Tech Hub","Centro tecnológico","Hub Tech","Hub Tecnologico","Технохаб","Tehnološki centar","科技中心",[],{"id":307,"title":308,"url":315,"target":62,"icon":316,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":317},"5-2",{"de":309,"en":310,"fr":311,"it":312,"ru":313,"zh":314},"Audio- & Mikrofonqualität","Audio & Mic Quality","Qualité audio & micro","Qualità audio & mic","Качество звука & микрофона","音频 & 麦克风质量","\u002Fgear\u002Faudio","i-lucide-mic",[],{"id":319,"title":320,"url":328,"target":62,"icon":329,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":330},"5-3",{"de":321,"en":322,"es":323,"fr":324,"it":325,"sr":326,"zh":327},"Controller & Zubehör","Controllers & Accessories","Mandos & accesorios","Manettes & accessoires","Controller & Accessori","Kontroleri & dodatna oprema","控制器 & 配件","\u002Fgear\u002Fcontrols","i-lucide-joystick",[],{"id":332,"title":333,"url":341,"target":62,"icon":342,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":343},"5-4",{"de":334,"en":335,"es":336,"fr":337,"it":338,"ru":339,"sr":340},"Displays & Aufnahme","Displays & Capture","Pantallas & Captura","Écrans & Capture","Display & Acquisizione","Дисплеи & Захват","Ekrani & snimanje","\u002Fgear\u002Fdisplays","i-lucide-monitor",[],{"id":345,"title":346,"url":355,"target":62,"icon":356,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":357},"5-5",{"de":347,"en":348,"es":349,"fr":350,"it":351,"ru":352,"sr":353,"zh":354},"Netzwerkstabilität","Network Stability","Estabilidad de la red","Stabilité du réseau","Stabilità della rete","Стабильность сети","Stabilnost mreže","网络稳定性","\u002Fplaybooks\u002Fnetwork-stability","i-lucide-wifi",[],{"id":359,"title":360,"url":368,"target":62,"icon":369,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":370},"6",{"de":361,"en":361,"es":362,"fr":363,"it":364,"ru":365,"sr":366,"zh":367},"Shop","Tienda","Boutique","Negozio","Магазин","Prodavnica","商店","\u002Fshop","i-lucide-shopping-cart",[371,383,391,399,412],{"id":372,"title":373,"url":368,"target":62,"icon":381,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":382},"6-1",{"de":374,"en":375,"es":376,"fr":377,"ru":378,"sr":379,"zh":380},"Shop-Hub","Shop Hub","Centro de compras","Espace Boutique","Центр магазина","Centar za kupovinu","购物中心","i-lucide-store",[],{"id":384,"title":385,"url":388,"target":62,"icon":389,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":390},"6-2",{"de":386,"en":386,"es":387,"fr":387,"it":387,"sr":387,"zh":387},"amiibo","Amiibo","\u002Famiibo-shop","i-lucide-scan-line",[],{"id":392,"title":393,"url":396,"target":62,"icon":397,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":398},"6-3",{"de":394,"en":394,"es":394,"fr":394,"it":394,"ru":394,"sr":394,"zh":395},"LEGO","乐高","\u002Flego-shop","i-lucide-blocks",[],{"id":400,"title":401,"url":409,"target":62,"icon":410,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":411},"6-4",{"de":402,"en":403,"es":404,"fr":405,"it":406,"sr":407,"zh":408},"Figuren & Sammlerstücke","Figures & Collectibles","Figuras & Coleccionables","Figurines & Objets de collection","Figure & Collezionismo","Figure & kolekcionarstvo","手办 & 收藏品","\u002Fshop\u002Ffigures","i-lucide-package",[],{"id":413,"title":414,"url":421,"target":62,"icon":422,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":423},"6-5",{"de":415,"en":415,"fr":416,"it":417,"ru":418,"sr":419,"zh":420},"Gaming Gear","Équipement gaming","Accessori gaming","Игровое снаряжение","Gejming oprema","游戏装备","\u002Fgaming-gear-shop","i-lucide-headphones",[],{"id":425,"title":426,"url":427,"target":62,"icon":389,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":428},"2",{"de":386,"en":386,"es":386,"fr":386,"it":386,"ru":386,"sr":386,"zh":386},"\u002Famiibo",[429,440,447,461,475,489,503,517],{"id":430,"title":431,"url":427,"target":62,"icon":90,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":439},"2-1",{"de":432,"en":433,"es":434,"fr":435,"it":435,"ru":436,"sr":437,"zh":438},"amiibo-Hub","amiibo Hub","Centro amiibo","Hub amiibo","Хаб amiibo","amiibo centar","amiibo 中心",[],{"id":441,"title":442,"url":444,"target":62,"icon":445,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":446},"1772724791061",{"de":443,"en":443},"Franchise","\u002Famiibo\u002Ffranchise","i-lucide-star",[],{"id":448,"title":449,"url":458,"target":62,"icon":459,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":460},"2-3",{"de":450,"en":451,"es":452,"fr":453,"it":454,"ru":455,"sr":456,"zh":457},"Region & Verpackung (EU\u002FUS\u002FJP)","Region & Packaging (EU\u002FUS\u002FJP)","Región y embalaje (UE\u002FEE. UU.\u002FJP)","Région & Emballage (UE\u002FUS\u002FJP)","Regione & Confezione (EU\u002FUS\u002FJP)","Регион & упаковка (EU\u002FUS\u002FJP)","Region & pakovanje (EU\u002FUS\u002FJP)","地区 & 包装 (EU\u002FUS\u002FJP)","\u002Famiibo-library\u002Famiibo-editions-and-regions","i-lucide-globe",[],{"id":462,"title":463,"url":472,"target":62,"icon":473,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":474},"2-4",{"de":464,"en":465,"es":466,"fr":467,"it":468,"ru":469,"sr":470,"zh":471},"Schnellidentifikations-Checkliste","Fast Identification Checklist","Lista de identificación rápida","Liste d'identification rapide","Checklist identificazione rapida","Чек-лист быстрой идентификации","Kontrolna lista za brzu identifikaciju","快速识别清单","\u002Famiibo\u002Fidentify-checklist","i-lucide-list-checks",[],{"id":476,"title":477,"url":486,"target":62,"icon":487,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":488},"2-6",{"de":478,"en":479,"es":480,"fr":481,"it":482,"ru":483,"sr":484,"zh":485},"Tipps für Sealed-Sammlungen","Sealed Collection Tips","Consejos de colección sellada","Conseils collection scellée","Consigli collezione sigillata","Советы по коллекции Sealed","Saveti za zapečaćene kolekcije","密封收藏贴士","\u002Famiibo\u002Fsealed-tips","i-lucide-shield-check",[],{"id":490,"title":491,"url":500,"target":62,"icon":501,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":502},"2-5",{"de":492,"en":493,"es":494,"fr":495,"it":496,"ru":497,"sr":498,"zh":499},"Zustand & Bewertung","Condition & Grading","Estado & Graduación","État & Évaluation","Condizioni & Valutazione","Состояние & Оценка","Stanje & ocenjivanje","品相与分级","\u002Famiibo-library\u002Famiibo-condition-and-grading","i-lucide-badge-check",[],{"id":504,"title":505,"url":514,"target":62,"icon":515,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":516},"2-2",{"de":506,"en":507,"es":508,"fr":509,"it":510,"ru":511,"sr":512,"zh":513},"Ausgaben & Nachdrucke","Editions & Reprints","Ediciones & Reimpresiones","Éditions & Réimpressions","Edizioni & ristampe","Издания & переиздания","Izdanja & reizdanja","版本 & 重印","\u002Famiibo\u002Fcollecting\u002F","i-lucide-layers",[],{"id":518,"title":519,"url":528,"target":62,"icon":529,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":530},"2-7",{"de":520,"en":521,"es":522,"fr":523,"it":524,"ru":525,"sr":526,"zh":527},"Nachdruck-Timeline","Reprint Timeline","Cronología de reimpresión","Chronologie des réimpressions","Cronologia ristampe","Хронология переизданий","Hronologija reprinta","重印时间轴","\u002Freference\u002Ftimelines\u002Famiibo-reprint-timeline","i-lucide-timer",[],{"statusCode":4,"data":532,"message":1740},{"id":533,"title":534,"slug":535,"content":536,"contentJson":537,"excerpt":1080,"featuredImage":1081,"featuredImageAlt":1082,"featuredImageCaption":14,"featuredImageTitle":14,"featuredImageCopyright":14,"featuredImageAuthor":14,"featuredImageSourceUrl":14,"featuredImageLicense":14,"featuredImageIsAiGenerated":821,"status":1083,"publishedAt":1084,"createdAt":1085,"updatedAt":1086,"seoLocalePaths":1087,"categories":1096,"author":1109,"translations":1113},"439","Pourquoi 120 FPS peuvent encore sembler mauvais : temps de frame, 1 % lows et stutter expliqués","why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u003Cp>Un jeu peut afficher 120, 144 ou même 200 FPS et pourtant sembler saccadé. La raison est simple : le taux de rafraîchissement moyen indique combien d'images ont été produites au fil du temps, mais il ne dit pas si ces images sont arrivées de manière régulière. Quelques images longues peuvent créer des à-coups visibles ou un micro-stutter même lorsque le nombre moyen de FPS semble excellent.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--info my-6 rounded-xl border p-5 border-blue-300 bg-blue-50 dark:border-blue-900 dark:bg-blue-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Réponse directe\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>Un nombre moyen de FPS élevé ne garantit pas une expérience fluide.\u003C\u002Fstrong> La fluidité dépend de la régularité du temps de frame : la manière dont les images sont délivrées. Pour diagnostiquer les saccades, examinez les temps de frame, les métriques de percentile ou de FPS bas, et les timings CPU\u002FGPU—pas seulement le nombre moyen de FPS.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Le modèle utilisé dans cet article\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Le Triangle de Fluidité et le Test de Stabilité du Temps de Frame ci-dessous sont des modèles pratiques de Figure Rocks. Ce ne sont pas des termes officiels d&#39;Intel, NVIDIA ou Microsoft.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Sommaire\">\u003Cstrong class=\"editorjs-toc__title\">Sommaire\u003C\u002Fstrong>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-0\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-5\" class=\"editorjs-toc__link\">Les FPS sont une moyenne ; le temps de frame est le rythme\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-9\" class=\"editorjs-toc__link\">Le Triangle de Fluidité\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-12\" class=\"editorjs-toc__link\">Pourquoi le nombre moyen de FPS masque les saccades\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-15\" class=\"editorjs-toc__link\">Ce que les 1% lows tentent de montrer\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-20\" class=\"editorjs-toc__link\">Les graphiques de temps de frame sont souvent plus utiles qu&#39;un seul chiffre récapitulatif\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-24\" class=\"editorjs-toc__link\">Le test de stabilité du temps de frame\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-26\" class=\"editorjs-toc__link\">Un goulot d&#39;étranglement CPU et un goulot d&#39;étranglement GPU ne se ressemblent pas\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-31\" class=\"editorjs-toc__link\">Pourquoi un plafond de frames peut parfois sembler plus fluide que des FPS maximaux\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-35\" class=\"editorjs-toc__link\">Causes courantes de saccades avec des FPS élevés\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-37\" class=\"editorjs-toc__link\">La compilation des shaders est un cas particulier\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-41\" class=\"editorjs-toc__link\">Le VRR ne répare pas les mauvais temps de frame\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-44\" class=\"editorjs-toc__link\">Pourquoi les 0,1 % les plus bas peuvent devenir bruités\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-48\" class=\"editorjs-toc__link\">Un protocole de benchmark pratique\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-50\" class=\"editorjs-toc__link\">La fiche d&#39;évaluation de la stabilité des temps de frame\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-52\" class=\"editorjs-toc__link\">Qu&#39;est-ce qui changerait cette réponse ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-55\" class=\"editorjs-toc__link\">Limitations\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-58\" class=\"editorjs-toc__link\">Conclusion\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-61\" class=\"editorjs-toc__link\">FAQ\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-63\" class=\"editorjs-toc__link\">Glossaire\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-65\" class=\"editorjs-toc__link\">Sources primaires\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Ch2 id=\"section-5\">Les FPS sont une moyenne ; le temps de frame est le rythme\u003C\u002Fh2>\n\u003Cp>Les FPS indiquent combien d'images sont terminées par seconde. Le temps de frame indique combien de temps prend une image individuelle.\u003C\u002Fp>\n\u003Cp>La conversion approximative est simple : le temps de frame en millisecondes est environ 1000 divisé par les FPS. À 60 FPS, le budget par image est d'environ 16,7 ms. À 120 FPS, il est d'environ 8,3 ms. À 144 FPS, il est d'environ 6,9 ms.\u003C\u002Fp>\n\u003Cp>Mais ces chiffres n'ont de sens que si la livraison des images est raisonnablement régulière. Une séquence de 7 ms, 7 ms, 7 ms, 35 ms, 7 ms, 7 ms peut toujours donner une moyenne de FPS élevée tout en produisant un à-coup perceptible.\u003C\u002Fp>\n\u003Ch2 id=\"section-9\">Le Triangle de Fluidité\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Trois éléments différents déterminent la sensation de rapidité d'un jeu\u003C\u002Fh3>\u003Cdiv class=\"flex flex-col sm:flex-row gap-3\">\u003Cdiv class=\"editorjs-process__step min-w-0 flex-1 rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Débit\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">FPS moyens : combien d'images le système produit au fil du temps.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__arrow shrink-0 self-center text-xl text-gray-400 rotate-90 sm:rotate-0\" aria-hidden=\"true\">→\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0 flex-1 rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Régularité\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Distribution des temps de frame : si les images arrivent avec une cadence stable ou contiennent des valeurs aberrantes longues.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__arrow shrink-0 self-center text-xl text-gray-400 rotate-90 sm:rotate-0\" aria-hidden=\"true\">→\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0 flex-1 rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Réactivité\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Latence : combien de temps il faut pour que les entrées et le travail du jeu aboutissent à une image visible.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Cp>Un système peut être fort dans un coin et faible dans un autre. Des FPS élevés avec des temps de frame instables peuvent sembler saccadés. Un rendu stable avec une latence très élevée peut sembler fluide mais lent. Un bon réglage des performances doit identifier quel coin est réellement défaillant.\u003C\u002Fp>\n\u003Ch2 id=\"section-12\">Pourquoi le nombre moyen de FPS masque les saccades\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Deux sessions peuvent avoir le même nombre moyen de FPS et sembler différentes\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Session stable\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Session instable\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">FPS moyens\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">120 FPS\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">120 FPS\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">La plupart des temps de frame\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Around 8–9 ms\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Mostly 5–7 ms\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Images lentes\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Few meaningful spikes\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Repeated 25–50 ms spikes\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Expérience du joueur\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Consistent motion\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Hitches despite the high average\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Cp>La session instable peut compenser les images longues en rendant de nombreuses images très rapides entre les pics. La moyenne reste élevée, mais le joueur remarque les pics plutôt que la moyenne arithmétique.\u003C\u002Fp>\n\u003Ch2 id=\"section-15\">Ce que les 1% lows tentent de montrer\u003C\u002Fh2>\n\u003Cp>Les métriques de FPS bas et de percentile existent parce que le nombre moyen de FPS seul ne peut pas décrire l'extrémité lente de la distribution des temps de frame.\u003C\u002Fp>\n\u003Cp>NVIDIA FrameView rapporte le nombre moyen de FPS ainsi que les métriques 1% Low et 0.1% Low. Sa documentation décrit le 1% Low comme la moyenne des 1% d'images les plus lentes, et note que plus la valeur de FPS bas est proche de la moyenne, plus l'expérience tend à être régulière.\u003C\u002Fp>\n\u003Cp>NVIDIA expose également des métriques basées sur les percentiles, comme le taux de rafraîchissement séparant les 1% d'images les plus lentes des 99% plus rapides. Ce sont des concepts liés, mais tous les outils de benchmark n'implémentent pas ou n'étiquettent pas les statistiques de FPS bas exactement de la même manière.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Ne comparez pas chaque chiffre de « 1 % low » comme si la formule était universelle\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Différents outils peuvent calculer, agréger ou étiqueter différemment les statistiques de FPS bas et de percentiles. Comparez les résultats du \u003Cstrong>même outil et de la même méthodologie\u003C\u002Fstrong> chaque fois que possible.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-20\">Les graphiques de temps de frame sont souvent plus utiles qu'un seul chiffre récapitulatif\u003C\u002Fh2>\n\u003Cp>Un graphique de temps de frame montre le timing des frames sur toute la capture. Une bande plate ou étroite indique généralement une cadence régulière. De grands pics isolés révèlent des à-coups. Des vagues répétitives peuvent indiquer un travail d'arrière-plan périodique, du streaming, de la synchronisation ou une autre charge de travail récurrente.\u003C\u002Fp>\n\u003Cp>Intel PresentMon est conçu autour de ce type d'analyse. L'outil actuel d'Intel peut afficher des graphiques de performance en temps réel, des percentiles, des moyennes à fenêtre glissante et de la télémétrie GPU, et il prend en charge les applications DirectX, OpenGL et Vulkan.\u003C\u002Fp>\n\u003Cp>NVIDIA FrameView mesure également le taux de frames et le temps de frame et peut écrire des données de capture détaillées dans des journaux pour une analyse ultérieure.\u003C\u002Fp>\n\u003Ch2 id=\"section-24\">Le test de stabilité du temps de frame\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Diagnostiquer si des FPS élevés masquent des saccades\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Capturez une scène reproductible\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Utilisez le même parcours, benchmark, point de sauvegarde ou séquence de jeu afin que les différentes exécutions soient comparables.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Enregistrez les FPS moyens\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Considérez-les comme un débit, pas comme le verdict final de fluidité.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Inspectez la régularité du temps de frame\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Recherchez des pics isolés, des pics répétitifs, une variance élevée ou de longs groupes de frames lentes.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Vérifiez les métriques de FPS bas ou de percentiles\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">De grands écarts entre les métriques moyennes et celles des frames lentes sont un avertissement que la cadence est irrégulière.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Comparez le timing CPU et GPU\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Déterminez si la frame lente provient d'avant le GPU, du GPU lui-même ou d'une autre partie du pipeline.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Modifiez une variable à la fois\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Testez indépendamment le plafond de frames, un réglage graphique, un processus d'arrière-plan, l'état des shaders, le chemin de stockage ou un réglage de pilote\u002Fjeu.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">7\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">7. Répétez la même capture\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Une correction n'a de sens que si la distribution des temps de frame s'améliore dans des conditions comparables.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-26\">Un goulot d'étranglement CPU et un goulot d'étranglement GPU ne se ressemblent pas\u003C\u002Fh2>\n\u003Cp>Un faible taux de frames ne vous dit pas quel processeur est responsable du délai. Le CPU prépare le travail de jeu et de rendu ; le GPU exécute le travail graphique. L'un ou l'autre peut devenir la limite de cadence.\u003C\u002Fp>\n\u003Cp>La métrique GPU Busy d'Intel PresentMon est spécifiquement destinée à aider à évaluer la relation entre le temps d'exécution du GPU et le temps de frame total. Cela peut aider à distinguer les frames où le GPU est occupé pendant la majeure partie de l'intervalle de celles où une grande partie du délai se produit ailleurs.\u003C\u002Fp>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Schémas de timing simplifiés\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Schéma de timing typique\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Ce que cela peut suggérer\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Limité par le GPU\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">GPU busy time is close to the frame interval\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">The graphics workload is consuming most of the available frame budget\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Contraint par le CPU \u002F le pipeline\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Frame time grows while GPU busy time remains materially lower\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">The delay may be before GPU execution or elsewhere in the presentation pipeline\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Événement intermittent\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Mostly stable timing with isolated large spikes\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Streaming, shader compilation, background work, asset loading or another transient event may be involved\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Ce sont des preuves diagnostiques, pas un verdict automatique\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Les schémas de timing réduisent l&#39;espace de recherche. Ils ne prouvent pas à eux seuls une cause racine spécifique.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-31\">Pourquoi un plafond de frames peut parfois sembler plus fluide que des FPS maximaux\u003C\u002Fh2>\n\u003Cp>Faire tourner un jeu au plus grand nombre de FPS possible sans plafond peut maintenir une partie du système proche de la saturation. Dans certaines charges de travail, laisser une marge peut réduire la volatilité du timing et produire une cadence plus stable.\u003C\u002Fp>\n\u003Cp>Cela ne signifie pas que chaque jeu doit être plafonné au même nombre. Le test utile est empirique : capturez la même charge de travail sans plafond et avec un ou plusieurs plafonds raisonnables, puis comparez la stabilité du temps de frame et la latence.\u003C\u002Fp>\n\u003Cp>Une moyenne plus basse avec une cadence de frames nettement plus régulière peut sembler meilleure qu'une moyenne plus élevée ponctuée de pics fréquents.\u003C\u002Fp>\n\u003Ch2 id=\"section-35\">Causes courantes de saccades avec des FPS élevés\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Classe de cause\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ce que vous pouvez observer\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ce qu'il faut tester\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Compilation de shaders ou de pipeline\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pics liés aux effets, lieux ou actions rencontrés pour la première fois\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Répétez la même séquence et comparez les passages ultérieurs\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Streaming d'assets \u002F du monde\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pics lors de l'entrée dans des zones ou du chargement de nouveau contenu\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Stockage, réglages de textures, comportement du streaming du monde\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ordonnancement CPU \u002F travail d'arrière-plan\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pics irréguliers sans lien avec la charge GPU\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Processus d'arrière-plan, overlays, enregistrement, saturation CPU\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Saturation GPU\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Temps d'exécution GPU constamment élevé\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Réduisez les réglages graphiques coûteux ou testez un plafond de frames\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pression mémoire\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Saccades croissantes sous forte utilisation VRAM\u002FRAM\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Niveau de textures, résolution, applications d'arrière-plan, comportement du working set\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Présentation \u002F synchronisation\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Problèmes de cadence liés au rafraîchissement ou aux modes de présentation\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Combinaisons V-Sync, VRR, plafond de frames et mode d'affichage\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Régression de pilote ou de jeu\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le problème apparaît après une mise à jour spécifique\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Comparez les versions ou les notes officielles sur les problèmes connus lorsque c'est possible\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-37\">La compilation des shaders est un cas particulier\u003C\u002Fh2>\n\u003Cp>Certains à-coups ne sont pas un simple problème de performance en régime stable. Une charge de travail peut tourner confortablement à haut FPS jusqu'à ce que le jeu effectue un travail coûteux qui ne se produit qu'à des moments précis.\u003C\u002Fp>\n\u003Cp>La compilation de shaders ou de pipelines en est un exemple. Si un à-coup apparaît la première fois qu'un effet ou une zone spécifique est rencontré mais diminue ou disparaît lors des passages suivants, ce schéma est différent d'un GPU qui est continuellement trop lent.\u003C\u002Fp>\n\u003Cp>C'est pourquoi les captures reproductibles sont importantes. Une moyenne unique sur une session entière peut mélanger un rendu stable et des événements ponctuels dans un résultat qui n'explique ni l'un ni l'autre.\u003C\u002Fp>\n\u003Ch2 id=\"section-41\">Le VRR ne répare pas les mauvais temps de frame\u003C\u002Fh2>\n\u003Cp>Le taux de rafraîchissement variable peut aligner plus étroitement la synchronisation du rafraîchissement de l'écran avec la livraison variable des frames et réduire le tearing ou le judder visible dans sa plage de fonctionnement.\u003C\u002Fp>\n\u003Cp>Mais le VRR ne transforme pas une frame de 40 ms en une frame de 8 ms. Un important blocage de rendu ou du CPU reste un important blocage. La technologie d'affichage peut améliorer la présentation ; elle ne peut pas supprimer le travail qui a retardé la frame au départ.\u003C\u002Fp>\n\u003Ch2 id=\"section-44\">Pourquoi les 0,1 % les plus bas peuvent devenir bruités\u003C\u002Fh2>\n\u003Cp>Les métriques centrées sur une très petite fraction des frames sont utiles pour exposer des valeurs aberrantes sévères, mais elles deviennent aussi sensibles à la durée de capture et aux événements ponctuels.\u003C\u002Fp>\n\u003Cp>Une courte capture contenant une transition de chargement peut produire un résultat extrême-bas très différent d'une session de jeu plus longue et reproductible. Cela ne rend pas la métrique inutile ; cela signifie que la méthodologie de test compte.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--success my-6 rounded-xl border p-5 border-emerald-300 bg-emerald-50 dark:border-emerald-900 dark:bg-emerald-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Utilisez la métrique pour répondre à une question\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Le FPS moyen répond au débit. Les métriques de FPS bas et de percentiles décrivent la queue lente. Le graphique des temps de frame montre \u003Cstrong>quand\u003C\u002Fstrong> les mauvaises frames se sont produites. Utilisez-les ensemble.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-48\">Un protocole de benchmark pratique\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Mesurer un jeu sans se tromper soi-même\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Préchauffer\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Laissez le jeu, les shaders et les ressources atteindre un état raisonnablement reproductible lorsque cela correspond à la question que vous testez.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Fixer les conditions\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Utilisez la même résolution, les mêmes paramètres, le même plafond de frames, le même emplacement et la même charge de travail.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Capturer assez longtemps\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Évitez de juger la queue lente à partir d'un petit échantillon, sauf si l'événement lui-même est ce que vous voulez mesurer.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Répéter\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Exécutez le même test plusieurs fois pour séparer le comportement reproductible des événements aléatoires en arrière-plan.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Comparer les distributions\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Examinez le FPS moyen, les métriques de frames lentes et la trace des temps de frame.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Enregistrer l'environnement\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">La version du jeu, le pilote, le système d'exploitation, le matériel et les principaux changements de configuration comptent pour les comparaisons ultérieures.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-50\">La fiche d'évaluation de la stabilité des temps de frame\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Ce qu&#39;il faut rechercher avant de qualifier un jeu de « fluide »\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Signal sain\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Signal d&#39;alerte\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Débit moyen\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Meets your performance target\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Average hides repeated drops below the useful range\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Queue des frames lentes\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Reasonably close to average for the workload\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Large persistent gap between average and low-FPS metrics\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Trace des temps de frame\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Narrow, mostly stable band\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Frequent tall spikes or recurring oscillation\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Reproductibilité\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Similar pattern across comparable runs\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Result changes wildly between identical tests\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Diagnostic temporel\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">CPU\u002FGPU behavior matches the suspected constraint\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Optimization is being applied without identifying the bottleneck\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-52\">Qu'est-ce qui changerait cette réponse ?\u003C\u002Fh2>\n\u003Cp>Les métriques exactes disponibles dépendent du système d'exploitation, de l'API graphique, du matériel et de l'outil de mesure. Les futurs systèmes de présentation ou pipelines de génération de frames peuvent également nécessiter des distinctions supplémentaires entre les frames rendues, générées et affichées.\u003C\u002Fp>\n\u003Cp>Le principe fondamental est peu susceptible de changer : une moyenne de débit ne peut pas décrire entièrement la cohérence temporelle. Tant que les graphiques interactifs sont livrés sous forme de séquence de frames, la distribution et la synchronisation de ces frames comptent.\u003C\u002Fp>\n\u003Ch2 id=\"section-55\">Limitations\u003C\u002Fh2>\n\u003Cp>Cet article est un cadre de diagnostic, et non l'affirmation que chaque saccade a la même cause racine. Les moteurs de jeu, les API, les systèmes d'exploitation, les pilotes et les pipelines de rendu diffèrent.\u003C\u002Fp>\n\u003Cp>Les métriques de faible FPS doivent également être interprétées dans le cadre de la méthodologie de l'outil qui les a produites. Les comparaisons entre outils peuvent être trompeuses lorsque les définitions statistiques ou les pipelines de capture diffèrent.\u003C\u002Fp>\n\u003Ch2 id=\"section-58\">Conclusion\u003C\u002Fh2>\n\u003Cp>Si un jeu affiche un FPS élevé mais reste désagréable, arrêtez de fixer la moyenne.\u003C\u002Fp>\n\u003Cp>Mesurez les temps de frame. Inspectez la queue lente. Découvrez quand les pics se produisent. Comparez les timings CPU et GPU. Ensuite, changez une variable et répétez la même charge de travail. La fluidité ne se résume pas au nombre de frames que votre système peut produire. C'est la constance avec laquelle ces frames vous parviennent.\u003C\u002Fp>\n\u003Ch2 id=\"section-61\">FAQ\u003C\u002Fh2>\n\u003Csection class=\"editorjs-faq my-6 rounded-xl border border-gray-200 p-5 dark:border-gray-700\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">FPS, temps de frame et saccades\u003C\u002Fh3>\u003Cdiv id=\"faq1\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Pourquoi 120 FPS semblent-ils encore saccadés ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Parce que 120 FPS est une moyenne. Des frames longues répétées peuvent créer des à-coups visibles même si de nombreuses frames rapides maintiennent la moyenne élevée.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq2\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Qu&#39;est-ce que le temps de frame ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Le temps de frame est le temps nécessaire à une frame individuelle, généralement mesuré en millisecondes. Des temps de frame plus faibles et plus constants indiquent généralement une diffusion plus fluide.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq3\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Que signifie 1% low FPS ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">C&#39;est une métrique destinée à décrire les performances parmi les frames les plus lentes. Les implémentations exactes peuvent différer selon l&#39;outil, donc comparez les résultats en utilisant la même méthodologie de benchmark.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq4\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Le 1% low est-il plus important que le FPS moyen ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Aucune des deux métriques n&#39;est suffisante à elle seule. Le FPS moyen décrit le débit, tandis que les métriques de faible FPS et les graphiques de temps de frame exposent les problèmes de constance.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq5\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Le VRR peut-il corriger les micro-saccades ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Le VRR peut améliorer la façon dont la diffusion variable des frames est présentée, mais il ne peut pas éliminer une frame longue causée par des blocages du CPU, du GPU, du streaming ou d&#39;autres charges de travail.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq6\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Dois-je limiter les FPS pour réduire les saccades ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Parfois, une limite peut améliorer la constance en laissant de la marge au système, mais cela doit être testé avec des captures de temps de frame reproductibles plutôt que supposé.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-63\">Glossaire\u003C\u002Fh2>\n\u003Csection class=\"editorjs-glossary my-6 rounded-xl border border-gray-200 dark:border-gray-700 p-5\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Termes clés de performance\u003C\u002Fh3>\u003Cdl>\u003Cdiv id=\"frame-time\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Temps de frame\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Le temps associé à la production ou à la présentation d'une frame individuelle, généralement exprimé en millisecondes.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"average-fps\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">FPS moyen\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une moyenne de débit décrivant le nombre de frames produites sur un intervalle mesuré.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"one-percent-low\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">1% Low\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une métrique de performance des frames lentes. Le calcul exact peut différer selon l'outil ; NVIDIA FrameView décrit son 1% Low comme la moyenne des 1% de frames les plus lentes.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"frame-time-spike\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Pic de temps de frame\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une frame dont la durée est substantiellement plus longue que les frames environnantes, souvent perçue comme un à-coup ou une saccade.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"gpu-busy\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">GPU Busy\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une métrique de timing PresentMon utilisée pour comparer le temps d'exécution du GPU avec l'intervalle de frame global et aider à diagnostiquer l'équilibre CPU\u002FGPU.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"frame-time-stability-test\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Test de stabilité du temps de frame\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un flux de travail Figure Rocks pour évaluer le débit moyen, la distribution des temps de frame, les métriques de frames lentes et les timings CPU\u002FGPU dans des conditions reproductibles.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-65\">Sources primaires\u003C\u002Fh2>\n\u003Ca href=\"https:\u002F\u002Fgame.intel.com\u002Fus\u002Fintel-presentmon\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Intel — PresentMon\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Outil officiel de surveillance des performances d&#39;Intel avec graphiques en temps réel, percentiles, télémétrie GPU, GPU Busy et prise en charge des principales API graphiques.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">NVIDIA — FrameView\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Outil officiel NVIDIA pour mesurer le taux de frames, le temps de frame, la puissance et la performance par watt, à l&#39;aide d&#39;analyses basées sur PresentMon.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fimages.nvidia.com\u002Fcontent\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002Fframeview-1-4-user-guide-web-version.pdf\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">NVIDIA — Guide d&#39;utilisation de FrameView\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentation officielle définissant le FPS moyen, les métriques de percentile, le 1% Low et le 0,1% Low et expliquant comment la constance est liée aux saccades.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.intel.com\u002Fcontent\u002Fwww\u002Fus\u002Fen\u002Fdeveloper\u002Farticles\u002Fguide\u002Flp-api-developer-optimization-guide.html\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Intel — Guide du développeur et d&#39;optimisation des API graphiques\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Conseils officiels Intel couvrant les modes de présentation, les considérations d&#39;ordonnancement CPU et l&#39;utilisation de PresentMon pour l&#39;analyse de la présentation des frames.\u003C\u002Fp>\u003C\u002Fa>",{"time":538,"blocks":539,"version":1079},1790374835650,[540,545,552,558,564,569,573,577,581,585,601,605,609,646,650,654,658,662,666,672,676,680,684,688,692,718,722,726,730,760,765,769,773,777,781,785,822,826,830,834,838,842,846,850,854,858,862,868,872,895,899,940,944,948,952,956,960,964,968,972,976,980,1009,1013,1042,1046,1055,1063,1071],{"id":541,"data":542,"type":544},"intro",{"text":543},"Un jeu peut afficher 120, 144 ou même 200 FPS et pourtant sembler saccadé. La raison est simple : le taux de rafraîchissement moyen indique combien d'images ont été produites au fil du temps, mais il ne dit pas si ces images sont arrivées de manière régulière. Quelques images longues peuvent créer des à-coups visibles ou un micro-stutter même lorsque le nombre moyen de FPS semble excellent.","paragraph",{"id":546,"data":547,"type":551},"direct",{"body":548,"title":549,"variant":550},"\u003Cstrong>Un nombre moyen de FPS élevé ne garantit pas une expérience fluide.\u003C\u002Fstrong> La fluidité dépend de la régularité du temps de frame : la manière dont les images sont délivrées. Pour diagnostiquer les saccades, examinez les temps de frame, les métriques de percentile ou de FPS bas, et les timings CPU\u002FGPU—pas seulement le nombre moyen de FPS.","Réponse directe","info","callout",{"id":553,"data":554,"type":551},"model-note",{"body":555,"title":556,"variant":557},"Le Triangle de Fluidité et le Test de Stabilité du Temps de Frame ci-dessous sont des modèles pratiques de Figure Rocks. Ce ne sont pas des termes officiels d'Intel, NVIDIA ou Microsoft.","Le modèle utilisé dans cet article","note",{"id":559,"data":560,"type":563},"toc",{"title":561,"maxLevel":562,"minLevel":47},"Sommaire",3,"tableOfContents",{"id":565,"data":566,"type":568},"h-fps-vs-ft",{"text":567,"level":47},"Les FPS sont une moyenne ; le temps de frame est le rythme","header",{"id":570,"data":571,"type":544},"p-fps-1",{"text":572},"Les FPS indiquent combien d'images sont terminées par seconde. Le temps de frame indique combien de temps prend une image individuelle.",{"id":574,"data":575,"type":544},"p-fps-2",{"text":576},"La conversion approximative est simple : le temps de frame en millisecondes est environ 1000 divisé par les FPS. À 60 FPS, le budget par image est d'environ 16,7 ms. À 120 FPS, il est d'environ 8,3 ms. À 144 FPS, il est d'environ 6,9 ms.",{"id":578,"data":579,"type":544},"p-fps-3",{"text":580},"Mais ces chiffres n'ont de sens que si la livraison des images est raisonnablement régulière. Une séquence de 7 ms, 7 ms, 7 ms, 35 ms, 7 ms, 7 ms peut toujours donner une moyenne de FPS élevée tout en produisant un à-coup perceptible.",{"id":582,"data":583,"type":568},"h-triangle",{"text":584,"level":47},"Le Triangle de Fluidité",{"id":586,"data":587,"type":600},"triangle-flow",{"steps":588,"title":598,"orientation":599},[589,592,595],{"label":590,"description":591},"1. Débit","FPS moyens : combien d'images le système produit au fil du temps.",{"label":593,"description":594},"2. Régularité","Distribution des temps de frame : si les images arrivent avec une cadence stable ou contiennent des valeurs aberrantes longues.",{"label":596,"description":597},"3. Réactivité","Latence : combien de temps il faut pour que les entrées et le travail du jeu aboutissent à une image visible.","Trois éléments différents déterminent la sensation de rapidité d'un jeu","auto","processFlow",{"id":602,"data":603,"type":544},"p-triangle",{"text":604},"Un système peut être fort dans un coin et faible dans un autre. Des FPS élevés avec des temps de frame instables peuvent sembler saccadés. Un rendu stable avec une latence très élevée peut sembler fluide mais lent. Un bon réglage des performances doit identifier quel coin est réellement défaillant.",{"id":606,"data":607,"type":568},"h-average",{"text":608,"level":47},"Pourquoi le nombre moyen de FPS masque les saccades",{"id":610,"data":611,"type":645},"same-average",{"rows":612,"title":636,"layout":637,"columns":638},[613,618,624,630],{"id":614,"label":615,"values":616},"avg","FPS moyens",{"stable":617,"unstable":617},"120 FPS",{"id":619,"label":620,"values":621},"normal","La plupart des temps de frame",{"stable":622,"unstable":623},"Around 8–9 ms","Mostly 5–7 ms",{"id":625,"label":626,"values":627},"outliers","Images lentes",{"stable":628,"unstable":629},"Few meaningful spikes","Repeated 25–50 ms spikes",{"id":631,"label":632,"values":633},"feel","Expérience du joueur",{"stable":634,"unstable":635},"Consistent motion","Hitches despite the high average","Deux sessions peuvent avoir le même nombre moyen de FPS et sembler différentes","table",[639,642],{"id":640,"label":641},"stable","Session stable",{"id":643,"label":644},"unstable","Session instable","comparison",{"id":647,"data":648,"type":544},"p-average-1",{"text":649},"La session instable peut compenser les images longues en rendant de nombreuses images très rapides entre les pics. La moyenne reste élevée, mais le joueur remarque les pics plutôt que la moyenne arithmétique.",{"id":651,"data":652,"type":568},"h-onepercent",{"text":653,"level":47},"Ce que les 1% lows tentent de montrer",{"id":655,"data":656,"type":544},"p-low-1",{"text":657},"Les métriques de FPS bas et de percentile existent parce que le nombre moyen de FPS seul ne peut pas décrire l'extrémité lente de la distribution des temps de frame.",{"id":659,"data":660,"type":544},"p-low-2",{"text":661},"NVIDIA FrameView rapporte le nombre moyen de FPS ainsi que les métriques 1% Low et 0.1% Low. Sa documentation décrit le 1% Low comme la moyenne des 1% d'images les plus lentes, et note que plus la valeur de FPS bas est proche de la moyenne, plus l'expérience tend à être régulière.",{"id":663,"data":664,"type":544},"p-low-3",{"text":665},"NVIDIA expose également des métriques basées sur les percentiles, comme le taux de rafraîchissement séparant les 1% d'images les plus lentes des 99% plus rapides. Ce sont des concepts liés, mais tous les outils de benchmark n'implémentent pas ou n'étiquettent pas les statistiques de FPS bas exactement de la même manière.",{"id":667,"data":668,"type":551},"low-warning",{"body":669,"title":670,"variant":671},"Différents outils peuvent calculer, agréger ou étiqueter différemment les statistiques de FPS bas et de percentiles. Comparez les résultats du \u003Cstrong>même outil et de la même méthodologie\u003C\u002Fstrong> chaque fois que possible.","Ne comparez pas chaque chiffre de « 1 % low » comme si la formule était universelle","warning",{"id":673,"data":674,"type":568},"h-graph",{"text":675,"level":47},"Les graphiques de temps de frame sont souvent plus utiles qu'un seul chiffre récapitulatif",{"id":677,"data":678,"type":544},"p-graph-1",{"text":679},"Un graphique de temps de frame montre le timing des frames sur toute la capture. Une bande plate ou étroite indique généralement une cadence régulière. De grands pics isolés révèlent des à-coups. Des vagues répétitives peuvent indiquer un travail d'arrière-plan périodique, du streaming, de la synchronisation ou une autre charge de travail récurrente.",{"id":681,"data":682,"type":544},"p-graph-2",{"text":683},"Intel PresentMon est conçu autour de ce type d'analyse. L'outil actuel d'Intel peut afficher des graphiques de performance en temps réel, des percentiles, des moyennes à fenêtre glissante et de la télémétrie GPU, et il prend en charge les applications DirectX, OpenGL et Vulkan.",{"id":685,"data":686,"type":544},"p-graph-3",{"text":687},"NVIDIA FrameView mesure également le taux de frames et le temps de frame et peut écrire des données de capture détaillées dans des journaux pour une analyse ultérieure.",{"id":689,"data":690,"type":568},"h-test",{"text":691,"level":47},"Le test de stabilité du temps de frame",{"id":693,"data":694,"type":600},"test-flow",{"steps":695,"title":717,"orientation":599},[696,699,702,705,708,711,714],{"label":697,"description":698},"1. Capturez une scène reproductible","Utilisez le même parcours, benchmark, point de sauvegarde ou séquence de jeu afin que les différentes exécutions soient comparables.",{"label":700,"description":701},"2. Enregistrez les FPS moyens","Considérez-les comme un débit, pas comme le verdict final de fluidité.",{"label":703,"description":704},"3. Inspectez la régularité du temps de frame","Recherchez des pics isolés, des pics répétitifs, une variance élevée ou de longs groupes de frames lentes.",{"label":706,"description":707},"4. Vérifiez les métriques de FPS bas ou de percentiles","De grands écarts entre les métriques moyennes et celles des frames lentes sont un avertissement que la cadence est irrégulière.",{"label":709,"description":710},"5. Comparez le timing CPU et GPU","Déterminez si la frame lente provient d'avant le GPU, du GPU lui-même ou d'une autre partie du pipeline.",{"label":712,"description":713},"6. Modifiez une variable à la fois","Testez indépendamment le plafond de frames, un réglage graphique, un processus d'arrière-plan, l'état des shaders, le chemin de stockage ou un réglage de pilote\u002Fjeu.",{"label":715,"description":716},"7. Répétez la même capture","Une correction n'a de sens que si la distribution des temps de frame s'améliore dans des conditions comparables.","Diagnostiquer si des FPS élevés masquent des saccades",{"id":719,"data":720,"type":568},"h-bottleneck",{"text":721,"level":47},"Un goulot d'étranglement CPU et un goulot d'étranglement GPU ne se ressemblent pas",{"id":723,"data":724,"type":544},"p-bottle-1",{"text":725},"Un faible taux de frames ne vous dit pas quel processeur est responsable du délai. Le CPU prépare le travail de jeu et de rendu ; le GPU exécute le travail graphique. L'un ou l'autre peut devenir la limite de cadence.",{"id":727,"data":728,"type":544},"p-bottle-2",{"text":729},"La métrique GPU Busy d'Intel PresentMon est spécifiquement destinée à aider à évaluer la relation entre le temps d'exécution du GPU et le temps de frame total. Cela peut aider à distinguer les frames où le GPU est occupé pendant la majeure partie de l'intervalle de celles où une grande partie du délai se produit ailleurs.",{"id":731,"data":732,"type":645},"bottleneck-table",{"rows":733,"title":752,"layout":637,"columns":753},[734,740,746],{"id":735,"label":736,"values":737},"gpu","Limité par le GPU",{"meaning":738,"pattern":739},"The graphics workload is consuming most of the available frame budget","GPU busy time is close to the frame interval",{"id":741,"label":742,"values":743},"cpu","Contraint par le CPU \u002F le pipeline",{"meaning":744,"pattern":745},"The delay may be before GPU execution or elsewhere in the presentation pipeline","Frame time grows while GPU busy time remains materially lower",{"id":747,"label":748,"values":749},"spike","Événement intermittent",{"meaning":750,"pattern":751},"Streaming, shader compilation, background work, asset loading or another transient event may be involved","Mostly stable timing with isolated large spikes","Schémas de timing simplifiés",[754,757],{"id":755,"label":756},"pattern","Schéma de timing typique",{"id":758,"label":759},"meaning","Ce que cela peut suggérer",{"id":761,"data":762,"type":551},"bottle-note",{"body":763,"title":764,"variant":557},"Les schémas de timing réduisent l'espace de recherche. Ils ne prouvent pas à eux seuls une cause racine spécifique.","Ce sont des preuves diagnostiques, pas un verdict automatique",{"id":766,"data":767,"type":568},"h-cap",{"text":768,"level":47},"Pourquoi un plafond de frames peut parfois sembler plus fluide que des FPS maximaux",{"id":770,"data":771,"type":544},"p-cap-1",{"text":772},"Faire tourner un jeu au plus grand nombre de FPS possible sans plafond peut maintenir une partie du système proche de la saturation. Dans certaines charges de travail, laisser une marge peut réduire la volatilité du timing et produire une cadence plus stable.",{"id":774,"data":775,"type":544},"p-cap-2",{"text":776},"Cela ne signifie pas que chaque jeu doit être plafonné au même nombre. Le test utile est empirique : capturez la même charge de travail sans plafond et avec un ou plusieurs plafonds raisonnables, puis comparez la stabilité du temps de frame et la latence.",{"id":778,"data":779,"type":544},"p-cap-3",{"text":780},"Une moyenne plus basse avec une cadence de frames nettement plus régulière peut sembler meilleure qu'une moyenne plus élevée ponctuée de pics fréquents.",{"id":782,"data":783,"type":568},"h-causes",{"text":784,"level":47},"Causes courantes de saccades avec des FPS élevés",{"id":786,"data":787,"type":637},"causes-table",{"content":788,"stretched":821,"withHeadings":15},[789,793,797,801,805,809,813,817],[790,791,792],"Classe de cause","Ce que vous pouvez observer","Ce qu'il faut tester",[794,795,796],"Compilation de shaders ou de pipeline","Pics liés aux effets, lieux ou actions rencontrés pour la première fois","Répétez la même séquence et comparez les passages ultérieurs",[798,799,800],"Streaming d'assets \u002F du monde","Pics lors de l'entrée dans des zones ou du chargement de nouveau contenu","Stockage, réglages de textures, comportement du streaming du monde",[802,803,804],"Ordonnancement CPU \u002F travail d'arrière-plan","Pics irréguliers sans lien avec la charge GPU","Processus d'arrière-plan, overlays, enregistrement, saturation CPU",[806,807,808],"Saturation GPU","Temps d'exécution GPU constamment élevé","Réduisez les réglages graphiques coûteux ou testez un plafond de frames",[810,811,812],"Pression mémoire","Saccades croissantes sous forte utilisation VRAM\u002FRAM","Niveau de textures, résolution, applications d'arrière-plan, comportement du working set",[814,815,816],"Présentation \u002F synchronisation","Problèmes de cadence liés au rafraîchissement ou aux modes de présentation","Combinaisons V-Sync, VRR, plafond de frames et mode d'affichage",[818,819,820],"Régression de pilote ou de jeu","Le problème apparaît après une mise à jour spécifique","Comparez les versions ou les notes officielles sur les problèmes connus lorsque c'est possible",false,{"id":823,"data":824,"type":568},"h-shader",{"text":825,"level":47},"La compilation des shaders est un cas particulier",{"id":827,"data":828,"type":544},"p-shader-1",{"text":829},"Certains à-coups ne sont pas un simple problème de performance en régime stable. Une charge de travail peut tourner confortablement à haut FPS jusqu'à ce que le jeu effectue un travail coûteux qui ne se produit qu'à des moments précis.",{"id":831,"data":832,"type":544},"p-shader-2",{"text":833},"La compilation de shaders ou de pipelines en est un exemple. Si un à-coup apparaît la première fois qu'un effet ou une zone spécifique est rencontré mais diminue ou disparaît lors des passages suivants, ce schéma est différent d'un GPU qui est continuellement trop lent.",{"id":835,"data":836,"type":544},"p-shader-3",{"text":837},"C'est pourquoi les captures reproductibles sont importantes. Une moyenne unique sur une session entière peut mélanger un rendu stable et des événements ponctuels dans un résultat qui n'explique ni l'un ni l'autre.",{"id":839,"data":840,"type":568},"h-vrr",{"text":841,"level":47},"Le VRR ne répare pas les mauvais temps de frame",{"id":843,"data":844,"type":544},"p-vrr-1",{"text":845},"Le taux de rafraîchissement variable peut aligner plus étroitement la synchronisation du rafraîchissement de l'écran avec la livraison variable des frames et réduire le tearing ou le judder visible dans sa plage de fonctionnement.",{"id":847,"data":848,"type":544},"p-vrr-2",{"text":849},"Mais le VRR ne transforme pas une frame de 40 ms en une frame de 8 ms. Un important blocage de rendu ou du CPU reste un important blocage. La technologie d'affichage peut améliorer la présentation ; elle ne peut pas supprimer le travail qui a retardé la frame au départ.",{"id":851,"data":852,"type":568},"h-pointone",{"text":853,"level":47},"Pourquoi les 0,1 % les plus bas peuvent devenir bruités",{"id":855,"data":856,"type":544},"p-pointone-1",{"text":857},"Les métriques centrées sur une très petite fraction des frames sont utiles pour exposer des valeurs aberrantes sévères, mais elles deviennent aussi sensibles à la durée de capture et aux événements ponctuels.",{"id":859,"data":860,"type":544},"p-pointone-2",{"text":861},"Une courte capture contenant une transition de chargement peut produire un résultat extrême-bas très différent d'une session de jeu plus longue et reproductible. Cela ne rend pas la métrique inutile ; cela signifie que la méthodologie de test compte.",{"id":863,"data":864,"type":551},"metrics-rule",{"body":865,"title":866,"variant":867},"Le FPS moyen répond au débit. Les métriques de FPS bas et de percentiles décrivent la queue lente. Le graphique des temps de frame montre \u003Cstrong>quand\u003C\u002Fstrong> les mauvaises frames se sont produites. Utilisez-les ensemble.","Utilisez la métrique pour répondre à une question","success",{"id":869,"data":870,"type":568},"h-protocol",{"text":871,"level":47},"Un protocole de benchmark pratique",{"id":873,"data":874,"type":600},"protocol-flow",{"steps":875,"title":894,"orientation":599},[876,879,882,885,888,891],{"label":877,"description":878},"Préchauffer","Laissez le jeu, les shaders et les ressources atteindre un état raisonnablement reproductible lorsque cela correspond à la question que vous testez.",{"label":880,"description":881},"Fixer les conditions","Utilisez la même résolution, les mêmes paramètres, le même plafond de frames, le même emplacement et la même charge de travail.",{"label":883,"description":884},"Capturer assez longtemps","Évitez de juger la queue lente à partir d'un petit échantillon, sauf si l'événement lui-même est ce que vous voulez mesurer.",{"label":886,"description":887},"Répéter","Exécutez le même test plusieurs fois pour séparer le comportement reproductible des événements aléatoires en arrière-plan.",{"label":889,"description":890},"Comparer les distributions","Examinez le FPS moyen, les métriques de frames lentes et la trace des temps de frame.",{"label":892,"description":893},"Enregistrer l'environnement","La version du jeu, le pilote, le système d'exploitation, le matériel et les principaux changements de configuration comptent pour les comparaisons ultérieures.","Mesurer un jeu sans se tromper soi-même",{"id":896,"data":897,"type":568},"h-scorecard",{"text":898,"level":47},"La fiche d'évaluation de la stabilité des temps de frame",{"id":900,"data":901,"type":645},"scorecard",{"rows":902,"title":933,"layout":637,"columns":934},[903,909,915,921,927],{"id":904,"label":905,"values":906},"average","Débit moyen",{"good":907,"warning":908},"Meets your performance target","Average hides repeated drops below the useful range",{"id":910,"label":911,"values":912},"tail","Queue des frames lentes",{"good":913,"warning":914},"Reasonably close to average for the workload","Large persistent gap between average and low-FPS metrics",{"id":916,"label":917,"values":918},"trace","Trace des temps de frame",{"good":919,"warning":920},"Narrow, mostly stable band","Frequent tall spikes or recurring oscillation",{"id":922,"label":923,"values":924},"repeat","Reproductibilité",{"good":925,"warning":926},"Similar pattern across comparable runs","Result changes wildly between identical tests",{"id":928,"label":929,"values":930},"cause","Diagnostic temporel",{"good":931,"warning":932},"CPU\u002FGPU behavior matches the suspected constraint","Optimization is being applied without identifying the bottleneck","Ce qu'il faut rechercher avant de qualifier un jeu de « fluide »",[935,938],{"id":936,"label":937},"good","Signal sain",{"id":671,"label":939},"Signal d'alerte",{"id":941,"data":942,"type":568},"h-change",{"text":943,"level":47},"Qu'est-ce qui changerait cette réponse ?",{"id":945,"data":946,"type":544},"p-change-1",{"text":947},"Les métriques exactes disponibles dépendent du système d'exploitation, de l'API graphique, du matériel et de l'outil de mesure. Les futurs systèmes de présentation ou pipelines de génération de frames peuvent également nécessiter des distinctions supplémentaires entre les frames rendues, générées et affichées.",{"id":949,"data":950,"type":544},"p-change-2",{"text":951},"Le principe fondamental est peu susceptible de changer : une moyenne de débit ne peut pas décrire entièrement la cohérence temporelle. Tant que les graphiques interactifs sont livrés sous forme de séquence de frames, la distribution et la synchronisation de ces frames comptent.",{"id":953,"data":954,"type":568},"h-limit",{"text":955,"level":47},"Limitations",{"id":957,"data":958,"type":544},"p-limit-1",{"text":959},"Cet article est un cadre de diagnostic, et non l'affirmation que chaque saccade a la même cause racine. Les moteurs de jeu, les API, les systèmes d'exploitation, les pilotes et les pipelines de rendu diffèrent.",{"id":961,"data":962,"type":544},"p-limit-2",{"text":963},"Les métriques de faible FPS doivent également être interprétées dans le cadre de la méthodologie de l'outil qui les a produites. Les comparaisons entre outils peuvent être trompeuses lorsque les définitions statistiques ou les pipelines de capture diffèrent.",{"id":965,"data":966,"type":568},"h-conclusion",{"text":967,"level":47},"Conclusion",{"id":969,"data":970,"type":544},"p-conclusion-1",{"text":971},"Si un jeu affiche un FPS élevé mais reste désagréable, arrêtez de fixer la moyenne.",{"id":973,"data":974,"type":544},"p-conclusion-2",{"text":975},"Mesurez les temps de frame. Inspectez la queue lente. Découvrez quand les pics se produisent. Comparez les timings CPU et GPU. Ensuite, changez une variable et répétez la même charge de travail. La fluidité ne se résume pas au nombre de frames que votre système peut produire. C'est la constance avec laquelle ces frames vous parviennent.",{"id":977,"data":978,"type":568},"h-faq",{"text":979,"level":47},"FAQ",{"id":981,"data":982,"type":981},"faq",{"items":983,"title":1008},[984,988,992,996,1000,1004],{"id":985,"answer":986,"question":987},"faq1","Parce que 120 FPS est une moyenne. Des frames longues répétées peuvent créer des à-coups visibles même si de nombreuses frames rapides maintiennent la moyenne élevée.","Pourquoi 120 FPS semblent-ils encore saccadés ?",{"id":989,"answer":990,"question":991},"faq2","Le temps de frame est le temps nécessaire à une frame individuelle, généralement mesuré en millisecondes. Des temps de frame plus faibles et plus constants indiquent généralement une diffusion plus fluide.","Qu'est-ce que le temps de frame ?",{"id":993,"answer":994,"question":995},"faq3","C'est une métrique destinée à décrire les performances parmi les frames les plus lentes. Les implémentations exactes peuvent différer selon l'outil, donc comparez les résultats en utilisant la même méthodologie de benchmark.","Que signifie 1% low FPS ?",{"id":997,"answer":998,"question":999},"faq4","Aucune des deux métriques n'est suffisante à elle seule. Le FPS moyen décrit le débit, tandis que les métriques de faible FPS et les graphiques de temps de frame exposent les problèmes de constance.","Le 1% low est-il plus important que le FPS moyen ?",{"id":1001,"answer":1002,"question":1003},"faq5","Le VRR peut améliorer la façon dont la diffusion variable des frames est présentée, mais il ne peut pas éliminer une frame longue causée par des blocages du CPU, du GPU, du streaming ou d'autres charges de travail.","Le VRR peut-il corriger les micro-saccades ?",{"id":1005,"answer":1006,"question":1007},"faq6","Parfois, une limite peut améliorer la constance en laissant de la marge au système, mais cela doit être testé avec des captures de temps de frame reproductibles plutôt que supposé.","Dois-je limiter les FPS pour réduire les saccades ?","FPS, temps de frame et saccades",{"id":1010,"data":1011,"type":568},"h-glossary",{"text":1012,"level":47},"Glossaire",{"id":1014,"data":1015,"type":1014},"glossary",{"title":1016,"entries":1017},"Termes clés de performance",[1018,1022,1026,1030,1034,1038],{"term":1019,"anchor":1020,"definition":1021},"Temps de frame","frame-time","Le temps associé à la production ou à la présentation d'une frame individuelle, généralement exprimé en millisecondes.",{"term":1023,"anchor":1024,"definition":1025},"FPS moyen","average-fps","Une moyenne de débit décrivant le nombre de frames produites sur un intervalle mesuré.",{"term":1027,"anchor":1028,"definition":1029},"1% Low","one-percent-low","Une métrique de performance des frames lentes. Le calcul exact peut différer selon l'outil ; NVIDIA FrameView décrit son 1% Low comme la moyenne des 1% de frames les plus lentes.",{"term":1031,"anchor":1032,"definition":1033},"Pic de temps de frame","frame-time-spike","Une frame dont la durée est substantiellement plus longue que les frames environnantes, souvent perçue comme un à-coup ou une saccade.",{"term":1035,"anchor":1036,"definition":1037},"GPU Busy","gpu-busy","Une métrique de timing PresentMon utilisée pour comparer le temps d'exécution du GPU avec l'intervalle de frame global et aider à diagnostiquer l'équilibre CPU\u002FGPU.",{"term":1039,"anchor":1040,"definition":1041},"Test de stabilité du temps de frame","frame-time-stability-test","Un flux de travail Figure Rocks pour évaluer le débit moyen, la distribution des temps de frame, les métriques de frames lentes et les timings CPU\u002FGPU dans des conditions reproductibles.",{"id":1043,"data":1044,"type":568},"h-sources",{"text":1045,"level":47},"Sources primaires",{"id":1047,"data":1048,"type":1054},"src-intel-presentmon",{"link":1049,"meta":1050},"https:\u002F\u002Fgame.intel.com\u002Fus\u002Fintel-presentmon\u002F",{"image":1051,"title":1052,"description":1053},{"url":13},"Intel — PresentMon","Outil officiel de surveillance des performances d'Intel avec graphiques en temps réel, percentiles, télémétrie GPU, GPU Busy et prise en charge des principales API graphiques.","linkTool",{"id":1056,"data":1057,"type":1054},"src-nvidia-frameview",{"link":1058,"meta":1059},"https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002F",{"image":1060,"title":1061,"description":1062},{"url":13},"NVIDIA — FrameView","Outil officiel NVIDIA pour mesurer le taux de frames, le temps de frame, la puissance et la performance par watt, à l'aide d'analyses basées sur PresentMon.",{"id":1064,"data":1065,"type":1054},"src-nvidia-frameview-guide",{"link":1066,"meta":1067},"https:\u002F\u002Fimages.nvidia.com\u002Fcontent\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002Fframeview-1-4-user-guide-web-version.pdf",{"image":1068,"title":1069,"description":1070},{"url":13},"NVIDIA — Guide d'utilisation de FrameView","Documentation officielle définissant le FPS moyen, les métriques de percentile, le 1% Low et le 0,1% Low et expliquant comment la constance est liée aux saccades.",{"id":1072,"data":1073,"type":1054},"src-intel-optimization",{"link":1074,"meta":1075},"https:\u002F\u002Fwww.intel.com\u002Fcontent\u002Fwww\u002Fus\u002Fen\u002Fdeveloper\u002Farticles\u002Fguide\u002Flp-api-developer-optimization-guide.html",{"image":1076,"title":1077,"description":1078},{"url":13},"Intel — Guide du développeur et d'optimisation des API graphiques","Conseils officiels Intel couvrant les modes de présentation, les considérations d'ordonnancement CPU et l'utilisation de PresentMon pour l'analyse de la présentation des frames.","2.31","Un jeu peut afficher 120, 144 ou même 200 FPS et pourtant sembler saccadé. Ce guide explique pourquoi le FPS moyen peut masquer une mauvaise distribution des images, comment le temps de frame et les 1 % les plus bas révèlent les micro-saccades, et comment diagnostiquer si le CPU, le GPU ou un autre élément de la chaîne est à l'origine du problème.","\u002Fuploads\u002F2026\u002F09\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained-1790374675922-u9tp75.webp","why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained-1790374675922-u9tp75","PUBLISHED","2026-09-25T18:17:00.000Z","2026-09-25T22:17:09.114Z","2026-09-25T22:22:05.283Z",{"en":1088,"de":1089,"sr":1090,"es":1091,"fr":1092,"it":1093,"ru":1094,"zh":1095},"\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fde\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fsr\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fes\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Ffr\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fit\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fru\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fzh\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained",[1097,1101,1105],{"id":1098,"name":1099,"slug":1100},224,"Analyse du frametime","frametime-analysis",{"id":1102,"name":1103,"slug":1104},49,"Frame Pacing","frame-pacing",{"id":1106,"name":1107,"slug":1108},328,"Identifier le type de saccade","identify-stutter-type",{"id":283,"login":1110,"email":1111,"displayName":1112},"aleksandar","aleksandar@stajic.de","Aleksandar Stajic",[1114,1513],{"lang":8,"title":1115,"content":1116,"contentJson":1117,"excerpt":1512},"Why 120 FPS Can Still Feel Bad: Frame Time, 1% Lows and Stutter Explained","{\"time\":1790374470296,\"blocks\":[{\"id\":\"intro\",\"data\":{\"text\":\"A game can report 120, 144 or even 200 FPS and still feel rough. The reason is simple: average frame rate tells you how many frames were produced over time, but it does not tell you whether those frames arrived evenly. A few long frames can create visible hitching or micro-stutter even when the average FPS number looks excellent.\"},\"type\":\"paragraph\"},{\"id\":\"direct\",\"data\":{\"body\":\"\u003Cstrong>High average FPS does not guarantee smooth gameplay.\u003C\u002Fstrong> Smoothness depends on frame-time consistency: how evenly frames are delivered. To diagnose stutter, look at frame times, percentile or low-FPS metrics, and CPU\u002FGPU timing—not average FPS alone.\",\"title\":\"Direct answer\",\"variant\":\"info\"},\"type\":\"callout\"},{\"id\":\"model-note\",\"data\":{\"body\":\"The Smoothness Triangle and Frame-Time Stability Test below are practical Figure Rocks models. They are not formal Intel, NVIDIA or Microsoft terminology.\",\"title\":\"The model used in this article\",\"variant\":\"note\"},\"type\":\"callout\"},{\"id\":\"toc\",\"data\":{\"title\":\"Contents\",\"maxLevel\":3,\"minLevel\":2},\"type\":\"tableOfContents\"},{\"id\":\"h-fps-vs-ft\",\"data\":{\"text\":\"FPS is an average; frame time is the rhythm\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-fps-1\",\"data\":{\"text\":\"FPS tells you how many frames are completed per second. Frame time tells you how long an individual frame takes.\"},\"type\":\"paragraph\"},{\"id\":\"p-fps-2\",\"data\":{\"text\":\"The rough conversion is simple: frame time in milliseconds is approximately 1000 divided by FPS. At 60 FPS, the frame budget is about 16.7 ms. At 120 FPS it is about 8.3 ms. At 144 FPS it is about 6.9 ms.\"},\"type\":\"paragraph\"},{\"id\":\"p-fps-3\",\"data\":{\"text\":\"But those numbers are only meaningful if frame delivery is reasonably consistent. A sequence of 7 ms, 7 ms, 7 ms, 35 ms, 7 ms, 7 ms can still average to a high FPS while producing a noticeable hitch.\"},\"type\":\"paragraph\"},{\"id\":\"h-triangle\",\"data\":{\"text\":\"The Smoothness Triangle\",\"level\":2},\"type\":\"header\"},{\"id\":\"triangle-flow\",\"data\":{\"steps\":[{\"label\":\"1. Throughput\",\"description\":\"Average FPS: how many frames the system produces over time.\"},{\"label\":\"2. Consistency\",\"description\":\"Frame-time distribution: whether frames arrive with a stable cadence or contain long outliers.\"},{\"label\":\"3. Responsiveness\",\"description\":\"Latency: how long it takes for input and game work to result in a visible frame.\"}],\"title\":\"Three different things determine how fast a game feels\",\"orientation\":\"auto\"},\"type\":\"processFlow\"},{\"id\":\"p-triangle\",\"data\":{\"text\":\"A system can be strong in one corner and weak in another. High FPS with unstable frame times can feel stuttery. Stable rendering with very high latency can feel smooth but sluggish. Good performance tuning has to identify which corner is actually failing.\"},\"type\":\"paragraph\"},{\"id\":\"h-average\",\"data\":{\"text\":\"Why average FPS hides stutter\",\"level\":2},\"type\":\"header\"},{\"id\":\"same-average\",\"data\":{\"rows\":[{\"id\":\"avg\",\"label\":\"Average FPS\",\"values\":{\"stable\":\"120 FPS\",\"unstable\":\"120 FPS\"}},{\"id\":\"normal\",\"label\":\"Most frame times\",\"values\":{\"stable\":\"Around 8–9 ms\",\"unstable\":\"Mostly 5–7 ms\"}},{\"id\":\"outliers\",\"label\":\"Slow frames\",\"values\":{\"stable\":\"Few meaningful spikes\",\"unstable\":\"Repeated 25–50 ms spikes\"}},{\"id\":\"feel\",\"label\":\"Player experience\",\"values\":{\"stable\":\"Consistent motion\",\"unstable\":\"Hitches despite the high average\"}}],\"title\":\"Two sessions can have the same average FPS and feel different\",\"layout\":\"table\",\"columns\":[{\"id\":\"stable\",\"label\":\"Stable session\"},{\"id\":\"unstable\",\"label\":\"Unstable session\"}]},\"type\":\"comparison\"},{\"id\":\"p-average-1\",\"data\":{\"text\":\"The unstable session can compensate for long frames by rendering many very fast frames between spikes. The average stays high, but the player notices the spikes rather than the arithmetic mean.\"},\"type\":\"paragraph\"},{\"id\":\"h-onepercent\",\"data\":{\"text\":\"What 1% lows are trying to show\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-low-1\",\"data\":{\"text\":\"Low-FPS and percentile metrics exist because average FPS alone cannot describe the slow end of the frame distribution.\"},\"type\":\"paragraph\"},{\"id\":\"p-low-2\",\"data\":{\"text\":\"NVIDIA FrameView reports average FPS together with 1% Low and 0.1% Low metrics. Its documentation describes 1% Low as the average of the slowest 1% of frames, and notes that the closer the low-FPS value is to the average, the more consistent the experience tends to be.\"},\"type\":\"paragraph\"},{\"id\":\"p-low-3\",\"data\":{\"text\":\"NVIDIA also exposes percentile-based metrics such as the frame rate separating the slowest 1% of frames from the faster 99%. These are related concepts, but not every benchmark tool implements or labels low-FPS statistics in exactly the same way.\"},\"type\":\"paragraph\"},{\"id\":\"low-warning\",\"data\":{\"body\":\"Different tools can calculate, aggregate or label low-FPS and percentile statistics differently. Compare results from the \u003Cstrong>same tool and methodology\u003C\u002Fstrong> whenever possible.\",\"title\":\"Do not compare every “1% low” number as if the formula were universal\",\"variant\":\"warning\"},\"type\":\"callout\"},{\"id\":\"h-graph\",\"data\":{\"text\":\"Frame-time graphs are often more useful than one summary number\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-graph-1\",\"data\":{\"text\":\"A frame-time graph shows the timing of frames across the capture. A flat or narrow band usually indicates consistent delivery. Tall isolated spikes reveal hitches. Repeating waves can point to periodic background work, streaming, synchronization or another recurring workload.\"},\"type\":\"paragraph\"},{\"id\":\"p-graph-2\",\"data\":{\"text\":\"Intel PresentMon is designed around this type of analysis. Intel's current tool can show real-time performance graphs, percentiles, moving-window averages and GPU telemetry, and it supports DirectX, OpenGL and Vulkan applications.\"},\"type\":\"paragraph\"},{\"id\":\"p-graph-3\",\"data\":{\"text\":\"NVIDIA FrameView likewise measures frame rate and frame time and can write detailed capture data to logs for later analysis.\"},\"type\":\"paragraph\"},{\"id\":\"h-test\",\"data\":{\"text\":\"The Frame-Time Stability Test\",\"level\":2},\"type\":\"header\"},{\"id\":\"test-flow\",\"data\":{\"steps\":[{\"label\":\"1. Capture a repeatable scene\",\"description\":\"Use the same route, benchmark, save point or gameplay sequence so different runs are comparable.\"},{\"label\":\"2. Record average FPS\",\"description\":\"Treat it as throughput, not as the final smoothness verdict.\"},{\"label\":\"3. Inspect frame-time consistency\",\"description\":\"Look for isolated spikes, repeating spikes, wide variance or long slow-frame clusters.\"},{\"label\":\"4. Check low-FPS or percentile metrics\",\"description\":\"Large gaps between average and slow-frame metrics are a warning that delivery is inconsistent.\"},{\"label\":\"5. Compare CPU and GPU timing\",\"description\":\"Determine whether the slow frame originates before the GPU, on the GPU, or from another part of the pipeline.\"},{\"label\":\"6. Change one variable at a time\",\"description\":\"Test frame cap, graphics setting, background process, shader state, storage path or driver\u002Fgame setting independently.\"},{\"label\":\"7. Repeat the same capture\",\"description\":\"A fix is meaningful only if the frame-time distribution improves under comparable conditions.\"}],\"title\":\"Diagnose whether high FPS is hiding stutter\",\"orientation\":\"auto\"},\"type\":\"processFlow\"},{\"id\":\"h-bottleneck\",\"data\":{\"text\":\"CPU bottleneck and GPU bottleneck do not look identical\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-bottle-1\",\"data\":{\"text\":\"A low frame rate does not tell you which processor is responsible for the delay. The CPU prepares game and rendering work; the GPU executes graphics work. Either side can become the pacing limit.\"},\"type\":\"paragraph\"},{\"id\":\"p-bottle-2\",\"data\":{\"text\":\"Intel PresentMon's GPU Busy metric is specifically intended to help evaluate the relationship between GPU execution time and total frame time. This can help distinguish frames where the GPU is occupied for most of the interval from frames where a large part of the delay occurs elsewhere.\"},\"type\":\"paragraph\"},{\"id\":\"bottleneck-table\",\"data\":{\"rows\":[{\"id\":\"gpu\",\"label\":\"GPU-bound\",\"values\":{\"meaning\":\"The graphics workload is consuming most of the available frame budget\",\"pattern\":\"GPU busy time is close to the frame interval\"}},{\"id\":\"cpu\",\"label\":\"CPU \u002F pipeline constrained\",\"values\":{\"meaning\":\"The delay may be before GPU execution or elsewhere in the presentation pipeline\",\"pattern\":\"Frame time grows while GPU busy time remains materially lower\"}},{\"id\":\"spike\",\"label\":\"Intermittent event\",\"values\":{\"meaning\":\"Streaming, shader compilation, background work, asset loading or another transient event may be involved\",\"pattern\":\"Mostly stable timing with isolated large spikes\"}}],\"title\":\"Simplified timing patterns\",\"layout\":\"table\",\"columns\":[{\"id\":\"pattern\",\"label\":\"Typical timing pattern\"},{\"id\":\"meaning\",\"label\":\"What it can suggest\"}]},\"type\":\"comparison\"},{\"id\":\"bottle-note\",\"data\":{\"body\":\"Timing patterns narrow the search space. They do not prove a specific root cause by themselves.\",\"title\":\"This is diagnostic evidence, not an automatic verdict\",\"variant\":\"note\"},\"type\":\"callout\"},{\"id\":\"h-cap\",\"data\":{\"text\":\"Why a frame cap can sometimes feel smoother than maximum FPS\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-cap-1\",\"data\":{\"text\":\"Running a game at the highest possible uncapped FPS can keep one part of the system near saturation. In some workloads, leaving headroom can reduce timing volatility and produce a more stable cadence.\"},\"type\":\"paragraph\"},{\"id\":\"p-cap-2\",\"data\":{\"text\":\"That does not mean every game should be capped to the same number. The useful test is empirical: capture the same workload uncapped and at one or more sensible caps, then compare frame-time stability and latency.\"},\"type\":\"paragraph\"},{\"id\":\"p-cap-3\",\"data\":{\"text\":\"A lower average with substantially tighter frame delivery can feel better than a higher average punctuated by frequent spikes.\"},\"type\":\"paragraph\"},{\"id\":\"h-causes\",\"data\":{\"text\":\"Common causes of high-FPS stutter\",\"level\":2},\"type\":\"header\"},{\"id\":\"causes-table\",\"data\":{\"content\":[[\"Cause class\",\"What you may see\",\"What to test\"],[\"Shader or pipeline compilation\",\"Spikes tied to first-time effects, locations or actions\",\"Repeat the same sequence and compare later passes\"],[\"Asset \u002F world streaming\",\"Spikes when entering areas or loading new content\",\"Storage, texture settings, world-streaming behavior\"],[\"CPU scheduling \u002F background work\",\"Irregular spikes unrelated to GPU load\",\"Background processes, overlays, recording, CPU saturation\"],[\"GPU saturation\",\"Consistently high GPU execution time\",\"Lower expensive graphics settings or test a frame cap\"],[\"Memory pressure\",\"Increasing hitching under heavy VRAM\u002FRAM use\",\"Texture level, resolution, background applications, working-set behavior\"],[\"Presentation \u002F synchronization\",\"Cadence problems around refresh or presentation modes\",\"V-Sync, VRR, frame cap and display-mode combinations\"],[\"Driver or game regression\",\"Problem appears after a specific update\",\"Compare versions or official known-issue notes where practical\"]],\"stretched\":false,\"withHeadings\":true},\"type\":\"table\"},{\"id\":\"h-shader\",\"data\":{\"text\":\"Shader compilation is a special case\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-shader-1\",\"data\":{\"text\":\"Some stutter is not a simple steady-state performance problem. A workload can run comfortably at high FPS until the game performs expensive work that occurs only at particular moments.\"},\"type\":\"paragraph\"},{\"id\":\"p-shader-2\",\"data\":{\"text\":\"Shader or pipeline compilation is one example. If a hitch appears the first time a specific effect or area is encountered but becomes smaller or disappears on later passes, that pattern is different from a GPU that is continuously too slow.\"},\"type\":\"paragraph\"},{\"id\":\"p-shader-3\",\"data\":{\"text\":\"This is why repeatable captures matter. One average number over an entire session can mix steady rendering and one-time events into a result that explains neither.\"},\"type\":\"paragraph\"},{\"id\":\"h-vrr\",\"data\":{\"text\":\"VRR does not repair bad frame times\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-vrr-1\",\"data\":{\"text\":\"Variable refresh rate can align display refresh timing more closely with variable frame delivery and reduce visible tearing or judder within its operating range.\"},\"type\":\"paragraph\"},{\"id\":\"p-vrr-2\",\"data\":{\"text\":\"But VRR does not make a 40 ms frame become an 8 ms frame. A large rendering or CPU stall remains a large stall. Display technology can improve presentation; it cannot remove work that delayed the frame in the first place.\"},\"type\":\"paragraph\"},{\"id\":\"h-pointone\",\"data\":{\"text\":\"Why 0.1% lows can become noisy\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-pointone-1\",\"data\":{\"text\":\"Metrics focused on a very small fraction of frames are useful for exposing severe outliers, but they also become sensitive to capture duration and one-off events.\"},\"type\":\"paragraph\"},{\"id\":\"p-pointone-2\",\"data\":{\"text\":\"A short capture containing one loading transition may produce a dramatically different extreme-low result than a longer, repeatable gameplay run. That does not make the metric useless; it means the test methodology matters.\"},\"type\":\"paragraph\"},{\"id\":\"metrics-rule\",\"data\":{\"body\":\"Average FPS answers throughput. Low-FPS and percentile metrics describe the slow tail. The frame-time graph shows \u003Cstrong>when\u003C\u002Fstrong> the bad frames happened. Use them together.\",\"title\":\"Use the metric to answer a question\",\"variant\":\"success\"},\"type\":\"callout\"},{\"id\":\"h-protocol\",\"data\":{\"text\":\"A practical benchmark protocol\",\"level\":2},\"type\":\"header\"},{\"id\":\"protocol-flow\",\"data\":{\"steps\":[{\"label\":\"Warm up\",\"description\":\"Let the game, shaders and assets reach a reasonably repeatable state when that matches the question you are testing.\"},{\"label\":\"Fix the conditions\",\"description\":\"Use the same resolution, settings, frame cap, location and workload.\"},{\"label\":\"Capture long enough\",\"description\":\"Avoid judging the slow tail from a tiny sample unless the event itself is what you want to measure.\"},{\"label\":\"Repeat\",\"description\":\"Run the same test multiple times to separate repeatable behavior from random background events.\"},{\"label\":\"Compare distributions\",\"description\":\"Look at average FPS, slow-frame metrics and the frame-time trace.\"},{\"label\":\"Record the environment\",\"description\":\"Game build, driver, operating system, hardware and major configuration changes matter for later comparisons.\"}],\"title\":\"Measure a game without fooling yourself\",\"orientation\":\"auto\"},\"type\":\"processFlow\"},{\"id\":\"h-scorecard\",\"data\":{\"text\":\"The Frame-Time Stability Scorecard\",\"level\":2},\"type\":\"header\"},{\"id\":\"scorecard\",\"data\":{\"rows\":[{\"id\":\"average\",\"label\":\"Average throughput\",\"values\":{\"good\":\"Meets your performance target\",\"warning\":\"Average hides repeated drops below the useful range\"}},{\"id\":\"tail\",\"label\":\"Slow-frame tail\",\"values\":{\"good\":\"Reasonably close to average for the workload\",\"warning\":\"Large persistent gap between average and low-FPS metrics\"}},{\"id\":\"trace\",\"label\":\"Frame-time trace\",\"values\":{\"good\":\"Narrow, mostly stable band\",\"warning\":\"Frequent tall spikes or recurring oscillation\"}},{\"id\":\"repeat\",\"label\":\"Repeatability\",\"values\":{\"good\":\"Similar pattern across comparable runs\",\"warning\":\"Result changes wildly between identical tests\"}},{\"id\":\"cause\",\"label\":\"Timing diagnosis\",\"values\":{\"good\":\"CPU\u002FGPU behavior matches the suspected constraint\",\"warning\":\"Optimization is being applied without identifying the bottleneck\"}}],\"title\":\"What to look for before calling a game “smooth”\",\"layout\":\"table\",\"columns\":[{\"id\":\"good\",\"label\":\"Healthy signal\"},{\"id\":\"warning\",\"label\":\"Warning signal\"}]},\"type\":\"comparison\"},{\"id\":\"h-change\",\"data\":{\"text\":\"What would change this answer?\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-change-1\",\"data\":{\"text\":\"The exact metrics available depend on the operating system, graphics API, hardware and measurement tool. Future presentation systems or frame-generation pipelines can also require additional distinctions between rendered, generated and displayed frames.\"},\"type\":\"paragraph\"},{\"id\":\"p-change-2\",\"data\":{\"text\":\"The core principle is unlikely to change: a throughput average cannot fully describe timing consistency. As long as interactive graphics are delivered as a sequence of frames, the distribution and timing of those frames matter.\"},\"type\":\"paragraph\"},{\"id\":\"h-limit\",\"data\":{\"text\":\"Limitations\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-limit-1\",\"data\":{\"text\":\"This article is a diagnostic framework, not a claim that every stutter has the same root cause. Game engines, APIs, operating systems, drivers and rendering pipelines differ.\"},\"type\":\"paragraph\"},{\"id\":\"p-limit-2\",\"data\":{\"text\":\"Low-FPS metrics should also be interpreted within the methodology of the tool that produced them. Cross-tool comparisons can be misleading when the statistical definitions or capture pipelines differ.\"},\"type\":\"paragraph\"},{\"id\":\"h-conclusion\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-conclusion-1\",\"data\":{\"text\":\"If a game shows high FPS but still feels bad, stop staring at the average.\"},\"type\":\"paragraph\"},{\"id\":\"p-conclusion-2\",\"data\":{\"text\":\"Measure the frame times. Inspect the slow tail. Find out when the spikes happen. Compare CPU and GPU timing. Then change one variable and repeat the same workload. Smoothness is not just how many frames your system can produce. It is how consistently those frames reach you.\"},\"type\":\"paragraph\"},{\"id\":\"h-faq\",\"data\":{\"text\":\"FAQ\",\"level\":2},\"type\":\"header\"},{\"id\":\"faq\",\"data\":{\"items\":[{\"id\":\"faq1\",\"answer\":\"Because 120 FPS is an average. Repeated long frames can create visible hitches even while many fast frames keep the average high.\",\"question\":\"Why does 120 FPS still feel stuttery?\"},{\"id\":\"faq2\",\"answer\":\"Frame time is the time required for an individual frame, usually measured in milliseconds. Lower and more consistent frame times generally indicate smoother delivery.\",\"question\":\"What is frame time?\"},{\"id\":\"faq3\",\"answer\":\"It is a metric intended to describe performance among the slowest frames. Exact implementations can differ by tool, so compare results using the same benchmark methodology.\",\"question\":\"What does 1% low FPS mean?\"},{\"id\":\"faq4\",\"answer\":\"Neither metric is sufficient by itself. Average FPS describes throughput, while low-FPS metrics and frame-time graphs expose consistency problems.\",\"question\":\"Is 1% low more important than average FPS?\"},{\"id\":\"faq5\",\"answer\":\"VRR can improve how variable frame delivery is presented, but it cannot eliminate a long frame caused by CPU, GPU, streaming or other workload stalls.\",\"question\":\"Can VRR fix micro-stutter?\"},{\"id\":\"faq6\",\"answer\":\"Sometimes a cap can improve consistency by leaving system headroom, but it should be tested with repeatable frame-time captures rather than assumed.\",\"question\":\"Should I cap FPS to reduce stutter?\"}],\"title\":\"FPS, frame time and stutter\"},\"type\":\"faq\"},{\"id\":\"h-glossary\",\"data\":{\"text\":\"Glossary\",\"level\":2},\"type\":\"header\"},{\"id\":\"glossary\",\"data\":{\"title\":\"Key performance terms\",\"entries\":[{\"term\":\"Frame time\",\"anchor\":\"frame-time\",\"definition\":\"The time associated with producing or presenting an individual frame, usually expressed in milliseconds.\"},{\"term\":\"Average FPS\",\"anchor\":\"average-fps\",\"definition\":\"A throughput average describing the number of frames produced over a measured interval.\"},{\"term\":\"1% Low\",\"anchor\":\"one-percent-low\",\"definition\":\"A slow-frame performance metric. Exact calculation can differ by tool; NVIDIA FrameView describes its 1% Low as the average of the slowest 1% of frames.\"},{\"term\":\"Frame-time spike\",\"anchor\":\"frame-time-spike\",\"definition\":\"A frame whose duration is substantially longer than surrounding frames, often perceived as a hitch or stutter.\"},{\"term\":\"GPU Busy\",\"anchor\":\"gpu-busy\",\"definition\":\"A PresentMon timing metric used to compare GPU execution time with the broader frame interval and help diagnose CPU\u002FGPU balance.\"},{\"term\":\"Frame-Time Stability Test\",\"anchor\":\"frame-time-stability-test\",\"definition\":\"A Figure Rocks workflow for evaluating average throughput, frame-time distribution, slow-frame metrics and CPU\u002FGPU timing under repeatable conditions.\"}]},\"type\":\"glossary\"},{\"id\":\"h-sources\",\"data\":{\"text\":\"Primary sources\",\"level\":2},\"type\":\"header\"},{\"id\":\"src-intel-presentmon\",\"data\":{\"link\":\"https:\u002F\u002Fgame.intel.com\u002Fus\u002Fintel-presentmon\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Intel — PresentMon\",\"description\":\"Official Intel performance-monitoring tool with real-time graphs, percentiles, GPU telemetry, GPU Busy and support for major graphics APIs.\"}},\"type\":\"linkTool\"},{\"id\":\"src-nvidia-frameview\",\"data\":{\"link\":\"https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"NVIDIA — FrameView\",\"description\":\"Official NVIDIA tool for measuring frame rate, frame time, power and performance-per-watt, using PresentMon-based analytics.\"}},\"type\":\"linkTool\"},{\"id\":\"src-nvidia-frameview-guide\",\"data\":{\"link\":\"https:\u002F\u002Fimages.nvidia.com\u002Fcontent\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002Fframeview-1-4-user-guide-web-version.pdf\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"NVIDIA — FrameView User Guide\",\"description\":\"Official documentation defining average FPS, percentile metrics, 1% Low and 0.1% Low and explaining how consistency relates to stutter.\"}},\"type\":\"linkTool\"},{\"id\":\"src-intel-optimization\",\"data\":{\"link\":\"https:\u002F\u002Fwww.intel.com\u002Fcontent\u002Fwww\u002Fus\u002Fen\u002Fdeveloper\u002Farticles\u002Fguide\u002Flp-api-developer-optimization-guide.html\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Intel — Graphics API Developer and Optimization Guide\",\"description\":\"Official Intel guidance covering presentation modes, CPU scheduling considerations and the use of PresentMon for frame-presentation analysis.\"}},\"type\":\"linkTool\"}],\"version\":\"2.31.0\"}",{"time":1118,"blocks":1119,"version":1511},1790374470296,[1120,1123,1127,1131,1134,1137,1140,1143,1146,1149,1162,1165,1168,1189,1192,1195,1198,1201,1204,1208,1211,1214,1217,1220,1223,1248,1251,1254,1257,1275,1279,1282,1285,1288,1291,1294,1329,1332,1335,1338,1341,1344,1347,1350,1353,1356,1359,1363,1366,1388,1391,1415,1418,1421,1424,1426,1429,1432,1434,1437,1440,1442,1464,1467,1486,1489,1494,1499,1505],{"id":541,"data":1121,"type":544},{"text":1122},"A game can report 120, 144 or even 200 FPS and still feel rough. The reason is simple: average frame rate tells you how many frames were produced over time, but it does not tell you whether those frames arrived evenly. A few long frames can create visible hitching or micro-stutter even when the average FPS number looks excellent.",{"id":546,"data":1124,"type":551},{"body":1125,"title":1126,"variant":550},"\u003Cstrong>High average FPS does not guarantee smooth gameplay.\u003C\u002Fstrong> Smoothness depends on frame-time consistency: how evenly frames are delivered. To diagnose stutter, look at frame times, percentile or low-FPS metrics, and CPU\u002FGPU timing—not average FPS alone.","Direct answer",{"id":553,"data":1128,"type":551},{"body":1129,"title":1130,"variant":557},"The Smoothness Triangle and Frame-Time Stability Test below are practical Figure Rocks models. They are not formal Intel, NVIDIA or Microsoft terminology.","The model used in this article",{"id":559,"data":1132,"type":563},{"title":1133,"maxLevel":562,"minLevel":47},"Contents",{"id":565,"data":1135,"type":568},{"text":1136,"level":47},"FPS is an average; frame time is the rhythm",{"id":570,"data":1138,"type":544},{"text":1139},"FPS tells you how many frames are completed per second. Frame time tells you how long an individual frame takes.",{"id":574,"data":1141,"type":544},{"text":1142},"The rough conversion is simple: frame time in milliseconds is approximately 1000 divided by FPS. At 60 FPS, the frame budget is about 16.7 ms. At 120 FPS it is about 8.3 ms. At 144 FPS it is about 6.9 ms.",{"id":578,"data":1144,"type":544},{"text":1145},"But those numbers are only meaningful if frame delivery is reasonably consistent. A sequence of 7 ms, 7 ms, 7 ms, 35 ms, 7 ms, 7 ms can still average to a high FPS while producing a noticeable hitch.",{"id":582,"data":1147,"type":568},{"text":1148,"level":47},"The Smoothness Triangle",{"id":586,"data":1150,"type":600},{"steps":1151,"title":1161,"orientation":599},[1152,1155,1158],{"label":1153,"description":1154},"1. Throughput","Average FPS: how many frames the system produces over time.",{"label":1156,"description":1157},"2. Consistency","Frame-time distribution: whether frames arrive with a stable cadence or contain long outliers.",{"label":1159,"description":1160},"3. Responsiveness","Latency: how long it takes for input and game work to result in a visible frame.","Three different things determine how fast a game feels",{"id":602,"data":1163,"type":544},{"text":1164},"A system can be strong in one corner and weak in another. High FPS with unstable frame times can feel stuttery. Stable rendering with very high latency can feel smooth but sluggish. Good performance tuning has to identify which corner is actually failing.",{"id":606,"data":1166,"type":568},{"text":1167,"level":47},"Why average FPS hides stutter",{"id":610,"data":1169,"type":645},{"rows":1170,"title":1183,"layout":637,"columns":1184},[1171,1174,1177,1180],{"id":614,"label":1172,"values":1173},"Average FPS",{"stable":617,"unstable":617},{"id":619,"label":1175,"values":1176},"Most frame times",{"stable":622,"unstable":623},{"id":625,"label":1178,"values":1179},"Slow frames",{"stable":628,"unstable":629},{"id":631,"label":1181,"values":1182},"Player experience",{"stable":634,"unstable":635},"Two sessions can have the same average FPS and feel different",[1185,1187],{"id":640,"label":1186},"Stable session",{"id":643,"label":1188},"Unstable session",{"id":647,"data":1190,"type":544},{"text":1191},"The unstable session can compensate for long frames by rendering many very fast frames between spikes. The average stays high, but the player notices the spikes rather than the arithmetic mean.",{"id":651,"data":1193,"type":568},{"text":1194,"level":47},"What 1% lows are trying to show",{"id":655,"data":1196,"type":544},{"text":1197},"Low-FPS and percentile metrics exist because average FPS alone cannot describe the slow end of the frame distribution.",{"id":659,"data":1199,"type":544},{"text":1200},"NVIDIA FrameView reports average FPS together with 1% Low and 0.1% Low metrics. Its documentation describes 1% Low as the average of the slowest 1% of frames, and notes that the closer the low-FPS value is to the average, the more consistent the experience tends to be.",{"id":663,"data":1202,"type":544},{"text":1203},"NVIDIA also exposes percentile-based metrics such as the frame rate separating the slowest 1% of frames from the faster 99%. These are related concepts, but not every benchmark tool implements or labels low-FPS statistics in exactly the same way.",{"id":667,"data":1205,"type":551},{"body":1206,"title":1207,"variant":671},"Different tools can calculate, aggregate or label low-FPS and percentile statistics differently. Compare results from the \u003Cstrong>same tool and methodology\u003C\u002Fstrong> whenever possible.","Do not compare every “1% low” number as if the formula were universal",{"id":673,"data":1209,"type":568},{"text":1210,"level":47},"Frame-time graphs are often more useful than one summary number",{"id":677,"data":1212,"type":544},{"text":1213},"A frame-time graph shows the timing of frames across the capture. A flat or narrow band usually indicates consistent delivery. Tall isolated spikes reveal hitches. Repeating waves can point to periodic background work, streaming, synchronization or another recurring workload.",{"id":681,"data":1215,"type":544},{"text":1216},"Intel PresentMon is designed around this type of analysis. Intel's current tool can show real-time performance graphs, percentiles, moving-window averages and GPU telemetry, and it supports DirectX, OpenGL and Vulkan applications.",{"id":685,"data":1218,"type":544},{"text":1219},"NVIDIA FrameView likewise measures frame rate and frame time and can write detailed capture data to logs for later analysis.",{"id":689,"data":1221,"type":568},{"text":1222,"level":47},"The Frame-Time Stability Test",{"id":693,"data":1224,"type":600},{"steps":1225,"title":1247,"orientation":599},[1226,1229,1232,1235,1238,1241,1244],{"label":1227,"description":1228},"1. Capture a repeatable scene","Use the same route, benchmark, save point or gameplay sequence so different runs are comparable.",{"label":1230,"description":1231},"2. Record average FPS","Treat it as throughput, not as the final smoothness verdict.",{"label":1233,"description":1234},"3. Inspect frame-time consistency","Look for isolated spikes, repeating spikes, wide variance or long slow-frame clusters.",{"label":1236,"description":1237},"4. Check low-FPS or percentile metrics","Large gaps between average and slow-frame metrics are a warning that delivery is inconsistent.",{"label":1239,"description":1240},"5. Compare CPU and GPU timing","Determine whether the slow frame originates before the GPU, on the GPU, or from another part of the pipeline.",{"label":1242,"description":1243},"6. Change one variable at a time","Test frame cap, graphics setting, background process, shader state, storage path or driver\u002Fgame setting independently.",{"label":1245,"description":1246},"7. Repeat the same capture","A fix is meaningful only if the frame-time distribution improves under comparable conditions.","Diagnose whether high FPS is hiding stutter",{"id":719,"data":1249,"type":568},{"text":1250,"level":47},"CPU bottleneck and GPU bottleneck do not look identical",{"id":723,"data":1252,"type":544},{"text":1253},"A low frame rate does not tell you which processor is responsible for the delay. The CPU prepares game and rendering work; the GPU executes graphics work. Either side can become the pacing limit.",{"id":727,"data":1255,"type":544},{"text":1256},"Intel PresentMon's GPU Busy metric is specifically intended to help evaluate the relationship between GPU execution time and total frame time. This can help distinguish frames where the GPU is occupied for most of the interval from frames where a large part of the delay occurs elsewhere.",{"id":731,"data":1258,"type":645},{"rows":1259,"title":1269,"layout":637,"columns":1270},[1260,1263,1266],{"id":735,"label":1261,"values":1262},"GPU-bound",{"meaning":738,"pattern":739},{"id":741,"label":1264,"values":1265},"CPU \u002F pipeline constrained",{"meaning":744,"pattern":745},{"id":747,"label":1267,"values":1268},"Intermittent event",{"meaning":750,"pattern":751},"Simplified timing patterns",[1271,1273],{"id":755,"label":1272},"Typical timing pattern",{"id":758,"label":1274},"What it can suggest",{"id":761,"data":1276,"type":551},{"body":1277,"title":1278,"variant":557},"Timing patterns narrow the search space. They do not prove a specific root cause by themselves.","This is diagnostic evidence, not an automatic verdict",{"id":766,"data":1280,"type":568},{"text":1281,"level":47},"Why a frame cap can sometimes feel smoother than maximum FPS",{"id":770,"data":1283,"type":544},{"text":1284},"Running a game at the highest possible uncapped FPS can keep one part of the system near saturation. In some workloads, leaving headroom can reduce timing volatility and produce a more stable cadence.",{"id":774,"data":1286,"type":544},{"text":1287},"That does not mean every game should be capped to the same number. The useful test is empirical: capture the same workload uncapped and at one or more sensible caps, then compare frame-time stability and latency.",{"id":778,"data":1289,"type":544},{"text":1290},"A lower average with substantially tighter frame delivery can feel better than a higher average punctuated by frequent spikes.",{"id":782,"data":1292,"type":568},{"text":1293,"level":47},"Common causes of high-FPS stutter",{"id":786,"data":1295,"type":637},{"content":1296,"stretched":821,"withHeadings":15},[1297,1301,1305,1309,1313,1317,1321,1325],[1298,1299,1300],"Cause class","What you may see","What to test",[1302,1303,1304],"Shader or pipeline compilation","Spikes tied to first-time effects, locations or actions","Repeat the same sequence and compare later passes",[1306,1307,1308],"Asset \u002F world streaming","Spikes when entering areas or loading new content","Storage, texture settings, world-streaming behavior",[1310,1311,1312],"CPU scheduling \u002F background work","Irregular spikes unrelated to GPU load","Background processes, overlays, recording, CPU saturation",[1314,1315,1316],"GPU saturation","Consistently high GPU execution time","Lower expensive graphics settings or test a frame cap",[1318,1319,1320],"Memory pressure","Increasing hitching under heavy VRAM\u002FRAM use","Texture level, resolution, background applications, working-set behavior",[1322,1323,1324],"Presentation \u002F synchronization","Cadence problems around refresh or presentation modes","V-Sync, VRR, frame cap and display-mode combinations",[1326,1327,1328],"Driver or game regression","Problem appears after a specific update","Compare versions or official known-issue notes where practical",{"id":823,"data":1330,"type":568},{"text":1331,"level":47},"Shader compilation is a special case",{"id":827,"data":1333,"type":544},{"text":1334},"Some stutter is not a simple steady-state performance problem. A workload can run comfortably at high FPS until the game performs expensive work that occurs only at particular moments.",{"id":831,"data":1336,"type":544},{"text":1337},"Shader or pipeline compilation is one example. If a hitch appears the first time a specific effect or area is encountered but becomes smaller or disappears on later passes, that pattern is different from a GPU that is continuously too slow.",{"id":835,"data":1339,"type":544},{"text":1340},"This is why repeatable captures matter. One average number over an entire session can mix steady rendering and one-time events into a result that explains neither.",{"id":839,"data":1342,"type":568},{"text":1343,"level":47},"VRR does not repair bad frame times",{"id":843,"data":1345,"type":544},{"text":1346},"Variable refresh rate can align display refresh timing more closely with variable frame delivery and reduce visible tearing or judder within its operating range.",{"id":847,"data":1348,"type":544},{"text":1349},"But VRR does not make a 40 ms frame become an 8 ms frame. A large rendering or CPU stall remains a large stall. Display technology can improve presentation; it cannot remove work that delayed the frame in the first place.",{"id":851,"data":1351,"type":568},{"text":1352,"level":47},"Why 0.1% lows can become noisy",{"id":855,"data":1354,"type":544},{"text":1355},"Metrics focused on a very small fraction of frames are useful for exposing severe outliers, but they also become sensitive to capture duration and one-off events.",{"id":859,"data":1357,"type":544},{"text":1358},"A short capture containing one loading transition may produce a dramatically different extreme-low result than a longer, repeatable gameplay run. That does not make the metric useless; it means the test methodology matters.",{"id":863,"data":1360,"type":551},{"body":1361,"title":1362,"variant":867},"Average FPS answers throughput. Low-FPS and percentile metrics describe the slow tail. The frame-time graph shows \u003Cstrong>when\u003C\u002Fstrong> the bad frames happened. Use them together.","Use the metric to answer a question",{"id":869,"data":1364,"type":568},{"text":1365,"level":47},"A practical benchmark protocol",{"id":873,"data":1367,"type":600},{"steps":1368,"title":1387,"orientation":599},[1369,1372,1375,1378,1381,1384],{"label":1370,"description":1371},"Warm up","Let the game, shaders and assets reach a reasonably repeatable state when that matches the question you are testing.",{"label":1373,"description":1374},"Fix the conditions","Use the same resolution, settings, frame cap, location and workload.",{"label":1376,"description":1377},"Capture long enough","Avoid judging the slow tail from a tiny sample unless the event itself is what you want to measure.",{"label":1379,"description":1380},"Repeat","Run the same test multiple times to separate repeatable behavior from random background events.",{"label":1382,"description":1383},"Compare distributions","Look at average FPS, slow-frame metrics and the frame-time trace.",{"label":1385,"description":1386},"Record the environment","Game build, driver, operating system, hardware and major configuration changes matter for later comparisons.","Measure a game without fooling yourself",{"id":896,"data":1389,"type":568},{"text":1390,"level":47},"The Frame-Time Stability Scorecard",{"id":900,"data":1392,"type":645},{"rows":1393,"title":1409,"layout":637,"columns":1410},[1394,1397,1400,1403,1406],{"id":904,"label":1395,"values":1396},"Average throughput",{"good":907,"warning":908},{"id":910,"label":1398,"values":1399},"Slow-frame tail",{"good":913,"warning":914},{"id":916,"label":1401,"values":1402},"Frame-time trace",{"good":919,"warning":920},{"id":922,"label":1404,"values":1405},"Repeatability",{"good":925,"warning":926},{"id":928,"label":1407,"values":1408},"Timing diagnosis",{"good":931,"warning":932},"What to look for before calling a game “smooth”",[1411,1413],{"id":936,"label":1412},"Healthy signal",{"id":671,"label":1414},"Warning signal",{"id":941,"data":1416,"type":568},{"text":1417,"level":47},"What would change this answer?",{"id":945,"data":1419,"type":544},{"text":1420},"The exact metrics available depend on the operating system, graphics API, hardware and measurement tool. Future presentation systems or frame-generation pipelines can also require additional distinctions between rendered, generated and displayed frames.",{"id":949,"data":1422,"type":544},{"text":1423},"The core principle is unlikely to change: a throughput average cannot fully describe timing consistency. As long as interactive graphics are delivered as a sequence of frames, the distribution and timing of those frames matter.",{"id":953,"data":1425,"type":568},{"text":955,"level":47},{"id":957,"data":1427,"type":544},{"text":1428},"This article is a diagnostic framework, not a claim that every stutter has the same root cause. Game engines, APIs, operating systems, drivers and rendering pipelines differ.",{"id":961,"data":1430,"type":544},{"text":1431},"Low-FPS metrics should also be interpreted within the methodology of the tool that produced them. Cross-tool comparisons can be misleading when the statistical definitions or capture pipelines differ.",{"id":965,"data":1433,"type":568},{"text":967,"level":47},{"id":969,"data":1435,"type":544},{"text":1436},"If a game shows high FPS but still feels bad, stop staring at the average.",{"id":973,"data":1438,"type":544},{"text":1439},"Measure the frame times. Inspect the slow tail. Find out when the spikes happen. Compare CPU and GPU timing. Then change one variable and repeat the same workload. Smoothness is not just how many frames your system can produce. It is how consistently those frames reach you.",{"id":977,"data":1441,"type":568},{"text":979,"level":47},{"id":981,"data":1443,"type":981},{"items":1444,"title":1463},[1445,1448,1451,1454,1457,1460],{"id":985,"answer":1446,"question":1447},"Because 120 FPS is an average. Repeated long frames can create visible hitches even while many fast frames keep the average high.","Why does 120 FPS still feel stuttery?",{"id":989,"answer":1449,"question":1450},"Frame time is the time required for an individual frame, usually measured in milliseconds. Lower and more consistent frame times generally indicate smoother delivery.","What is frame time?",{"id":993,"answer":1452,"question":1453},"It is a metric intended to describe performance among the slowest frames. Exact implementations can differ by tool, so compare results using the same benchmark methodology.","What does 1% low FPS mean?",{"id":997,"answer":1455,"question":1456},"Neither metric is sufficient by itself. Average FPS describes throughput, while low-FPS metrics and frame-time graphs expose consistency problems.","Is 1% low more important than average FPS?",{"id":1001,"answer":1458,"question":1459},"VRR can improve how variable frame delivery is presented, but it cannot eliminate a long frame caused by CPU, GPU, streaming or other workload stalls.","Can VRR fix micro-stutter?",{"id":1005,"answer":1461,"question":1462},"Sometimes a cap can improve consistency by leaving system headroom, but it should be tested with repeatable frame-time captures rather than assumed.","Should I cap FPS to reduce stutter?","FPS, frame time and stutter",{"id":1010,"data":1465,"type":568},{"text":1466,"level":47},"Glossary",{"id":1014,"data":1468,"type":1014},{"title":1469,"entries":1470},"Key performance terms",[1471,1474,1476,1478,1481,1483],{"term":1472,"anchor":1020,"definition":1473},"Frame time","The time associated with producing or presenting an individual frame, usually expressed in milliseconds.",{"term":1172,"anchor":1024,"definition":1475},"A throughput average describing the number of frames produced over a measured interval.",{"term":1027,"anchor":1028,"definition":1477},"A slow-frame performance metric. Exact calculation can differ by tool; NVIDIA FrameView describes its 1% Low as the average of the slowest 1% of frames.",{"term":1479,"anchor":1032,"definition":1480},"Frame-time spike","A frame whose duration is substantially longer than surrounding frames, often perceived as a hitch or stutter.",{"term":1035,"anchor":1036,"definition":1482},"A PresentMon timing metric used to compare GPU execution time with the broader frame interval and help diagnose CPU\u002FGPU balance.",{"term":1484,"anchor":1040,"definition":1485},"Frame-Time Stability Test","A Figure Rocks workflow for evaluating average throughput, frame-time distribution, slow-frame metrics and CPU\u002FGPU timing under repeatable conditions.",{"id":1043,"data":1487,"type":568},{"text":1488,"level":47},"Primary sources",{"id":1047,"data":1490,"type":1054},{"link":1049,"meta":1491},{"image":1492,"title":1052,"description":1493},{"url":13},"Official Intel performance-monitoring tool with real-time graphs, percentiles, GPU telemetry, GPU Busy and support for major graphics APIs.",{"id":1056,"data":1495,"type":1054},{"link":1058,"meta":1496},{"image":1497,"title":1061,"description":1498},{"url":13},"Official NVIDIA tool for measuring frame rate, frame time, power and performance-per-watt, using PresentMon-based analytics.",{"id":1064,"data":1500,"type":1054},{"link":1066,"meta":1501},{"image":1502,"title":1503,"description":1504},{"url":13},"NVIDIA — FrameView User Guide","Official documentation defining average FPS, percentile metrics, 1% Low and 0.1% Low and explaining how consistency relates to stutter.",{"id":1072,"data":1506,"type":1054},{"link":1074,"meta":1507},{"image":1508,"title":1509,"description":1510},{"url":13},"Intel — Graphics API Developer and Optimization Guide","Official Intel guidance covering presentation modes, CPU scheduling considerations and the use of PresentMon for frame-presentation analysis.","2.31.0","A game can report 120, 144 or even 200 FPS and still feel rough. This guide explains why average FPS can hide bad frame delivery, how frame time and 1% lows expose stutter, and how to diagnose whether the CPU, GPU or another part of the pipeline is causing the problem.",{"lang":7,"title":534,"content":536,"contentJson":1514,"excerpt":1080},{"time":538,"blocks":1515,"version":1079},[1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1540,1542,1544,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1590,1592,1594,1596,1608,1610,1612,1614,1616,1618,1620,1631,1633,1635,1637,1639,1641,1643,1645,1647,1649,1651,1653,1655,1664,1666,1682,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1711,1713,1722,1724,1728,1732,1736],{"id":541,"data":1517,"type":544},{"text":543},{"id":546,"data":1519,"type":551},{"body":548,"title":549,"variant":550},{"id":553,"data":1521,"type":551},{"body":555,"title":556,"variant":557},{"id":559,"data":1523,"type":563},{"title":561,"maxLevel":562,"minLevel":47},{"id":565,"data":1525,"type":568},{"text":567,"level":47},{"id":570,"data":1527,"type":544},{"text":572},{"id":574,"data":1529,"type":544},{"text":576},{"id":578,"data":1531,"type":544},{"text":580},{"id":582,"data":1533,"type":568},{"text":584,"level":47},{"id":586,"data":1535,"type":600},{"steps":1536,"title":598,"orientation":599},[1537,1538,1539],{"label":590,"description":591},{"label":593,"description":594},{"label":596,"description":597},{"id":602,"data":1541,"type":544},{"text":604},{"id":606,"data":1543,"type":568},{"text":608,"level":47},{"id":610,"data":1545,"type":645},{"rows":1546,"title":636,"layout":637,"columns":1555},[1547,1549,1551,1553],{"id":614,"label":615,"values":1548},{"stable":617,"unstable":617},{"id":619,"label":620,"values":1550},{"stable":622,"unstable":623},{"id":625,"label":626,"values":1552},{"stable":628,"unstable":629},{"id":631,"label":632,"values":1554},{"stable":634,"unstable":635},[1556,1557],{"id":640,"label":641},{"id":643,"label":644},{"id":647,"data":1559,"type":544},{"text":649},{"id":651,"data":1561,"type":568},{"text":653,"level":47},{"id":655,"data":1563,"type":544},{"text":657},{"id":659,"data":1565,"type":544},{"text":661},{"id":663,"data":1567,"type":544},{"text":665},{"id":667,"data":1569,"type":551},{"body":669,"title":670,"variant":671},{"id":673,"data":1571,"type":568},{"text":675,"level":47},{"id":677,"data":1573,"type":544},{"text":679},{"id":681,"data":1575,"type":544},{"text":683},{"id":685,"data":1577,"type":544},{"text":687},{"id":689,"data":1579,"type":568},{"text":691,"level":47},{"id":693,"data":1581,"type":600},{"steps":1582,"title":717,"orientation":599},[1583,1584,1585,1586,1587,1588,1589],{"label":697,"description":698},{"label":700,"description":701},{"label":703,"description":704},{"label":706,"description":707},{"label":709,"description":710},{"label":712,"description":713},{"label":715,"description":716},{"id":719,"data":1591,"type":568},{"text":721,"level":47},{"id":723,"data":1593,"type":544},{"text":725},{"id":727,"data":1595,"type":544},{"text":729},{"id":731,"data":1597,"type":645},{"rows":1598,"title":752,"layout":637,"columns":1605},[1599,1601,1603],{"id":735,"label":736,"values":1600},{"meaning":738,"pattern":739},{"id":741,"label":742,"values":1602},{"meaning":744,"pattern":745},{"id":747,"label":748,"values":1604},{"meaning":750,"pattern":751},[1606,1607],{"id":755,"label":756},{"id":758,"label":759},{"id":761,"data":1609,"type":551},{"body":763,"title":764,"variant":557},{"id":766,"data":1611,"type":568},{"text":768,"level":47},{"id":770,"data":1613,"type":544},{"text":772},{"id":774,"data":1615,"type":544},{"text":776},{"id":778,"data":1617,"type":544},{"text":780},{"id":782,"data":1619,"type":568},{"text":784,"level":47},{"id":786,"data":1621,"type":637},{"content":1622,"stretched":821,"withHeadings":15},[1623,1624,1625,1626,1627,1628,1629,1630],[790,791,792],[794,795,796],[798,799,800],[802,803,804],[806,807,808],[810,811,812],[814,815,816],[818,819,820],{"id":823,"data":1632,"type":568},{"text":825,"level":47},{"id":827,"data":1634,"type":544},{"text":829},{"id":831,"data":1636,"type":544},{"text":833},{"id":835,"data":1638,"type":544},{"text":837},{"id":839,"data":1640,"type":568},{"text":841,"level":47},{"id":843,"data":1642,"type":544},{"text":845},{"id":847,"data":1644,"type":544},{"text":849},{"id":851,"data":1646,"type":568},{"text":853,"level":47},{"id":855,"data":1648,"type":544},{"text":857},{"id":859,"data":1650,"type":544},{"text":861},{"id":863,"data":1652,"type":551},{"body":865,"title":866,"variant":867},{"id":869,"data":1654,"type":568},{"text":871,"level":47},{"id":873,"data":1656,"type":600},{"steps":1657,"title":894,"orientation":599},[1658,1659,1660,1661,1662,1663],{"label":877,"description":878},{"label":880,"description":881},{"label":883,"description":884},{"label":886,"description":887},{"label":889,"description":890},{"label":892,"description":893},{"id":896,"data":1665,"type":568},{"text":898,"level":47},{"id":900,"data":1667,"type":645},{"rows":1668,"title":933,"layout":637,"columns":1679},[1669,1671,1673,1675,1677],{"id":904,"label":905,"values":1670},{"good":907,"warning":908},{"id":910,"label":911,"values":1672},{"good":913,"warning":914},{"id":916,"label":917,"values":1674},{"good":919,"warning":920},{"id":922,"label":923,"values":1676},{"good":925,"warning":926},{"id":928,"label":929,"values":1678},{"good":931,"warning":932},[1680,1681],{"id":936,"label":937},{"id":671,"label":939},{"id":941,"data":1683,"type":568},{"text":943,"level":47},{"id":945,"data":1685,"type":544},{"text":947},{"id":949,"data":1687,"type":544},{"text":951},{"id":953,"data":1689,"type":568},{"text":955,"level":47},{"id":957,"data":1691,"type":544},{"text":959},{"id":961,"data":1693,"type":544},{"text":963},{"id":965,"data":1695,"type":568},{"text":967,"level":47},{"id":969,"data":1697,"type":544},{"text":971},{"id":973,"data":1699,"type":544},{"text":975},{"id":977,"data":1701,"type":568},{"text":979,"level":47},{"id":981,"data":1703,"type":981},{"items":1704,"title":1008},[1705,1706,1707,1708,1709,1710],{"id":985,"answer":986,"question":987},{"id":989,"answer":990,"question":991},{"id":993,"answer":994,"question":995},{"id":997,"answer":998,"question":999},{"id":1001,"answer":1002,"question":1003},{"id":1005,"answer":1006,"question":1007},{"id":1010,"data":1712,"type":568},{"text":1012,"level":47},{"id":1014,"data":1714,"type":1014},{"title":1016,"entries":1715},[1716,1717,1718,1719,1720,1721],{"term":1019,"anchor":1020,"definition":1021},{"term":1023,"anchor":1024,"definition":1025},{"term":1027,"anchor":1028,"definition":1029},{"term":1031,"anchor":1032,"definition":1033},{"term":1035,"anchor":1036,"definition":1037},{"term":1039,"anchor":1040,"definition":1041},{"id":1043,"data":1723,"type":568},{"text":1045,"level":47},{"id":1047,"data":1725,"type":1054},{"link":1049,"meta":1726},{"image":1727,"title":1052,"description":1053},{"url":13},{"id":1056,"data":1729,"type":1054},{"link":1058,"meta":1730},{"image":1731,"title":1061,"description":1062},{"url":13},{"id":1064,"data":1733,"type":1054},{"link":1066,"meta":1734},{"image":1735,"title":1069,"description":1070},{"url":13},{"id":1072,"data":1737,"type":1054},{"link":1074,"meta":1738},{"image":1739,"title":1077,"description":1078},{"url":13},"Post erfolgreich abgerufen",{"items":1742,"source":1806,"manualIds":1807,"manualMatchedIds":1808},[1743,1749,1754,1761,1766,1771,1776,1783,1789,1794,1801],{"id":1744,"slug":1745,"title":1746,"excerpt":1747,"featuredImage":14,"publishedAt":1748},"208","frame-cap-recipes-stable-targets-for-vrr-and-non-vrr-setups","Recettes de limitation d'images : Cibles stables pour les configurations VRR et non-VRR","Un bon plafonnement est plus agréable que des pics instables. Utilisez ces recettes simples de plafonnement pour stabiliser le frame pacing des écrans VRR et non-VRR.","2026-02-21T05:20:00.000Z",{"id":359,"slug":1750,"title":1751,"excerpt":1752,"featuredImage":14,"publishedAt":1753},"smoothness-frame-pacing-matters-more-than-fps","Fluidité : la régularité des images importe plus que les FPS","La fluidité est un timing constant, pas seulement des chiffres plus élevés. Voici comment raisonner en temps de trame et éliminer la sensation de ‘micro-saccades’.","2026-02-19T11:00:00.000Z",{"id":1755,"slug":1756,"title":1757,"excerpt":1758,"featuredImage":1759,"publishedAt":1760},"450","why-pc-games-stutter-when-compiling-shaders-and-how-advanced-shader-delivery-changes-it","Pourquoi les jeux PC saccadent lors de la compilation des shaders — et comment la livraison avancée de shaders change la donne","Les saccades de shaders se produisent lorsqu'un jeu PC doit compiler des programmes GPU au mauvais moment. Microsoft Advanced Shader Delivery déplace une grande partie de ce travail hors du PC du joueur en préparant à l'avance des shaders spécifiques au matériel et en les livrant avec le jeu.","\u002Fuploads\u002F2026\u002F09\u002Fwhy-pc-games-stutter-when-compiling-shaders-and-how-advanced-shader-delivery-changes-it-1790406602956-ewtgf3.webp","2026-09-26T01:08:00.000Z",{"id":1762,"slug":1763,"title":1764,"excerpt":1765,"featuredImage":14,"publishedAt":1753},"85","frame-pacing-why-60-fps-can-feel-worse-than-50-consistency-wins","Frame Pacing : Pourquoi 60 FPS peuvent sembler pires que 50 (La régularité l'emporte)","La fluidité n'est pas seulement une question de FPS. C'est le frame pacing. Découvrez pourquoi des frametimes constants sont plus agréables qu'un FPS plus élevé mais instable et comment stabiliser le timing.",{"id":1767,"slug":1768,"title":1769,"excerpt":1770,"featuredImage":14,"publishedAt":1753},"69","frame-pacing-why-120-fps-can-feel-worse-than-60-smoothness-explained","Frame Pacing : Pourquoi 120 FPS peuvent sembler pires que 60 (La fluidité expliquée)","La fluidité est une question de régularité du timing, pas de pics de FPS. Apprenez ce qu'est le frame pacing, comment les frametimes créent des saccades et la base pratique qui corrige le ressenti.",{"id":1772,"slug":1773,"title":1774,"excerpt":1775,"featuredImage":14,"publishedAt":1753},"100","frame-pacing-why-120-fps-can-still-feel-bad","Frame Pacing : Pourquoi 120 FPS peuvent encore sembler mauvais","La fluidité est une question de timing, pas un chiffre. Découvrez ce qu'est le frame pacing, pourquoi de mauvais frametimes semblent saccadés même à un FPS élevé, et l'ordre pratique des corrections.",{"id":1777,"slug":1778,"title":1779,"excerpt":1780,"featuredImage":1781,"publishedAt":1782},"442","dlss-4-5-6x-why-300-fps-does-not-mean-the-game-is-rendering-300-frames","DLSS 4.5 6X : pourquoi 300 FPS ne signifie pas que le jeu rend 300 images","DLSS 4.5 peut générer jusqu'à cinq images supplémentaires pour chaque image rendue de manière traditionnelle sur les GPU de la série RTX 50 pris en charge. Ce guide explique la différence entre les FPS rendus et les FPS affichés, pourquoi les goulots d'étranglement du CPU peuvent être contournés au niveau de la couche de présentation, et pourquoi la latence doit encore être mesurée séparément.","\u002Fuploads\u002F2026\u002F09\u002Fdlss-4-5-6x-why-300-fps-does-not-mean-the-game-is-rendering-300-frames-1790376124236-e2j567.webp","2026-09-25T18:40:00.000Z",{"id":1784,"slug":1785,"title":1786,"excerpt":1787,"featuredImage":14,"publishedAt":1788},"237","shader-stutter-why-first-runs-hitch-and-how-to-reduce-it","Saccades de shaders : Pourquoi les premiers lancements saccadent et comment les réduire","Les saccades liées aux shaders se produisent lorsque de nouveaux effets sont compilés en temps réel. Apprenez à les identifier rapidement et découvrez les moyens pratiques de réduire les saccades sans réglages placebo.","2026-02-20T23:40:00.000Z",{"id":1790,"slug":1791,"title":1792,"excerpt":1793,"featuredImage":14,"publishedAt":1753},"80","cpu-stutter-vs-gpu-stutter-vs-shader-stutter-how-to-tell-what-you-have","Saccades CPU vs Saccades GPU vs Saccades de shaders : Comment savoir ce que vous avez","Toutes les saccades ne sont pas identiques. Découvrez les trois types de saccades courants, leurs effets, et le moyen le plus rapide de les diagnostiquer avant de modifier vos paramètres.",{"id":1795,"slug":1796,"title":1797,"excerpt":1798,"featuredImage":1799,"publishedAt":1800},"441","vram-usage-is-not-vram-requirement-why-a-full-memory-meter-does-not-tell-the-whole-story","L'utilisation de la VRAM n'est pas une exigence de VRAM : pourquoi un indicateur de mémoire plein ne raconte pas toute l'histoire","Voir 7,8 Go utilisés sur une carte graphique de 8 Go peut sembler prouver qu'un jeu a épuisé sa VRAM. Ce n'est pas si simple. Ce guide explique la capacité de la VRAM, les budgets de résidence, les ensembles de travail, la mémoire partagée et comment déterminer si la pression mémoire est réellement à l'origine des saccades.","\u002Fuploads\u002F2026\u002F09\u002Fvram-usage-is-not-vram-requirement-why-a-full-memory-meter-does-not-tell-the-whole-story-1790375650647-k854hg.webp","2026-09-25T18:33:00.000Z",{"id":1802,"slug":1803,"title":1804,"excerpt":1805,"featuredImage":14,"publishedAt":1753},"120","frame-pacing-why-smoothness-is-about-frametime-not-fps","Frame Pacing : Pourquoi la fluidité est une question de frametime, pas de FPS","Un FPS élevé peut toujours sembler désagréable si le timing est irrégulier. Découvrez ce qu'est le frame pacing, ce qui le perturbe et l'ordre des correctifs qui rétablit une sensation de fluidité.","fallback",[],[]]