Ar įjungti trigubą buferį, ar ne. Trigubas „OpenGl AMD“ buferis kas tai yra – ar turėčiau jį įjungti, ar ne? (trigubas buferis, trigubas buferis)

Šioje apžvalgoje aš jums pasakysiu, kas yra trigubas buferis, taip pat apie su juo susijusias funkcijas.

Problemos esmė. Formuojant vaizdą manoma, kad optimalu, kad iš pradžių visas plotas pakeičiamas fonu (pavyzdžiui, balta spalva ar tam tikra nuotrauka), o tik tada ant jo dedami atskiri fragmentai. Jei naudojate vieną buferį, iš kurio skaitomi ir įrašomi duomenys, atsiranda problemų, tokių kaip ekrano ar atskirų jo elementų mirgėjimas, spragų atsiradimas (viršutinė nuotraukos dalis nuo dabartinės, apatinė dalis nuo senojo). ) ir kiti defektai galimi.

Vienas iš šios problemos sprendimų yra dvigubas ir trigubas buferis. Kas tai yra ir kodėl to reikia, taip pat kaip jis susijęs su vertikalia sinchronizacija V-Sync, mes svarstysime toliau.

Trigubas ir dvigubas buferis

Dvigubas buferis

Dvigubas buferis- tai metodas, leidžiantis vienu metu perduoti galutinį rezultatą ir formuoti kitą.

Kaip dvigubas buferis veikia kompiuterinėje grafikoje? Verta pažymėti, kad yra du variantai, kurie abu išsprendžia mirgėjimo problemą ir kai kuriuos kitus defektus, bet neišsprendžia vaizdo plyšimo problemos. Pirmoji, kai vaizdas pirmiausia formuojamas kompiuterio RAM atmintyje, o po to nukopijuojamas į monitoriaus buferį (iš kurio pastarasis nuskaito ir rodo vaizdą ekrane). Antrasis – kai vaizdo plokštė iš pradžių palaiko du buferius, kuriuos keičia nekopijuodama duomenų, o tai yra žymiai greičiau. Tokiu atveju plyšimai atsiranda rečiau.

Verta žinoti, kad pirminis buferis reiškia tą, kuriame saugomas monitoriaus ekrane rodomas vaizdas. Antrinis buferis reiškia tą, kuriame generuojamas vaizdas (vyksta atvaizdavimas).

Trigubas buferis

Trigubas buferis- Tai dvigubo buferio tipas, pasižymintis tuo, kad naudojami trys duomenų buferiai.

Kaip trigubas buferis veikia kompiuterinėje grafikoje? Pats mechanizmas daugeliu atžvilgių panašus, tačiau naudojami tik trys duomenų buferiai – pirminis ir du antriniai. Šiuo atveju taip pat galima naudoti papildomus vaizdo plokštės buferius kaip antrinius metodo buferius, jei jie yra.

Kodėl tai būtina? Faktas yra tas, kad kol duomenys yra kopijuojami, vaizdo plokštė neveikia. Atitinkamai, papildomas antrinis buferis išsprendžia šią problemą, nes duomenų kopijavimo metu gali būti suformuotas kitas vaizdas. Tai leidžia padidinti fps.

Tačiau abi šios technologijos paprastai yra susijusios su V-Sync ir dėl geros priežasties. Pažiūrėkime, kodėl toliau.

Dvigubas ir trigubas buferis su V-sinchronizavimu

V-Sync naudojamas kartu su dvigubu arba trigubu buferiu, siekiant išspręsti vaizdo plyšimo problemą. Vienintelis skirtumas nuo įprasto naudojimo yra tas, kad duomenų kopijavimas sinchronizuojamas su monitoriaus dažniu. Paprastais žodžiais tariant, kai monitorius skaito ir rodo duomenis, vaizdas nesikeičia.

Pastaba Pastaba: skaitytojai turėtų žinoti, kad „V-Sync“ padidina įvesties delsą.

Kokie yra dvigubo buferio su V-Sync privalumai ir trūkumai?

Argumentai "už" Ekrane nesimato jokių spragų. Jei vaizdo plokštė yra galinga ir jos fps didesnis nei monitoriaus dažnis, tai kadrų per sekundę sumažėjimo gali ir nesijausti, nes kiekvienas animacijos kadras bus atvaizduojamas (sugeneruotas) prieš jį rodant monitoriaus ekrane, atsižvelgiant į kopijavimo delsa.

Minusai. Esmė ta, kad be vaizdo plokštės neveikiančios problemos kopijuojant duomenis, laukiama, kol monitorius pradės piešti. Tai reiškia, kad fps gali labai sumažėti, jei vaizdo plokštė generuoja mažiau kadrų nei monitoriaus laikrodis. Pavyzdžiui, 40–45 kadrų per sekundę galima sumažinti iki 30 realių kadrų per sekundę, nes kai kurie kadrai bus rodomi per 1 monitoriaus laikrodžio ciklą, o kai kurie – per 2 monitoriaus laikrodžio ciklus. Jei fps mažesnis nei 30, sumažinimas gali būti iki 15 kadrų.

Antras reikšmingas trūkumas yra tas, kad jei žaidimo vaizdo plokštės realus fps svyruoja, tai gali būti pastebima ir papildomai sukelti pernelyg didelį akių nuovargį. Pavyzdžiui, jei kai kuriose scenose yra 40–50 kadrų per sekundę, o kitose – 20–30 kadrų per sekundę, tai reiškia, kad kadrai per sekundę bus kaitaliojami „30 - 15 - 30 - 15 - 15 - 30 - 30".

Kokie yra trigubo buferio su V-Sync privalumai ir trūkumai?

Argumentai "už" Tas pats kaip dvigubas, bet su tam tikrais skirtumais. Faktas yra tas, kad trigubas buferis leidžia atsikratyti prastovos problemos, nes kai monitorius laukia arba kopijuoja duomenis, vaizdo plokštė generuoja kitą vaizdą, o tai ypač naudinga, jei vaizdo plokštė vaizdus generuoja greitai arba lėtai ( tačiau dėl V-Sync gali atsirasti trūkumo – periodiškai praleidžiami vaizdai).

Minusai. Pirmasis trūkumas yra tas, kad trigubui buferiui reikia daugiau skaičiavimo resursų. Antras trūkumas yra tas, kad jei vaizdo plokštė visada greitai generuoja vaizdus, ​​​​atsižvelgiant į visus vėlavimus, tada prarandama trigubo buferio nauda. Trečias. Jei kompiuteris yra „silpnas“, šio metodo įjungimas gali sumažinti faktinį kadrų per sekundę skaičių. Taip atsitinka dėl pirmojo trūkumo, nes reikia daugiau skaičiavimo išteklių. Tokiu atveju geriau išjungti ne tik trigubą buferį, bet ir V-Sync.

Buferis yra mainų organizavimo būdas, būtent duomenų įvedimas ir išvedimas į skaičiavimo įrenginius ir kompiuterius. Buferis naudojamas kaip vieta laikinai saugoti duomenis. Duomenų įvedimo metu kai kurie įrenginiai įrašo duomenis į buferį, o kiti nuskaito duomenis iš buferio. Išvedant viskas yra visiškai priešingai.

Kur mes sutinkame buferį?

Beveik visi kompiuterio procesai yra susiję su šiuo procesu. Neinformuotam žmogui nėra lengva suprasti, kas yra buferis. Tačiau stebėti labai paprasta: tas pats filmukas atsisiunčiamas internetu – duomenys yra buferyje, filmas įkeliamas į CACHE ir paleidžiamas, nors jo nėra kompiuteryje.

Ši operacija leidžia procesams atlikti duomenų įvedimą ir išvedimą nepriklausomai vienas nuo kito. Dėl savo naudingumo buferis naudojamas daugiafunkcinėse operacinėse sistemose.

Keletas jo tipų yra naudojami kompiuterinėje grafikoje įvesties, išvesties ir vaizdo apdorojimui. Jų įgyvendinimas vyksta aparatinėje arba programinėje įrangoje.

Buferizavimo pavyzdys yra modemo RAM, kuri naudojama laikinai saugoti gautus ir išsiųstus failus.
Buferio programinėje įrangoje pavyzdys yra daugiafunkcinės operacinės sistemos, kuriose, įvedant duomenis spausdinimui, failai laikinai atsisiunčiami į spausdinimo eilę.

Pažengę kompiuterių vartotojai turi žinoti, kas yra buferis.
Informacinių technologijų srityje visada yra paviršutiniškos ir gilios informacijos. Supratę, kas yra buferis, galite eiti toliau ir išsamiau apsvarstyti jo tipus.

Yra žinoma, kad egzistuoja dvigubas ir trigubas buferis. Jie bus aptarti kitoje paantraštėje.

Trigubas buferis – kas tai?

Kompiuterinėje grafikoje šis aptariamas procesas yra dvigubo buferio tipas. Vienintelis skirtumas yra vaizdo išvesties metodas. Trivietis leidžia išvengti artefaktų arba sumažinti jų skaičių. Taip pat yra skirtumų tarp dvigubo ir trigubo vaizdo išvesties greičio.

Trigubo buferio metodas taip pat yra sinchronizavimas su trečiuoju buferiu, čia naudojamas kaip būdas suteikti laisvos vietos pakeitimų užklausoms bendrame grafikos išvesties apimtyje. Jis veikia kaip tam tikra saugykla. Trigubo buferio metodas reikalauja daugiau išteklių, tačiau užtikrina pastovų kadrų dažnį.

Trys buferiai nėra riba. Tačiau atsisiųstų failų laikinai saugojimui nereikia 4 ar daugiau vietų, tik 3 iš jų visada veiks aktyviai. Todėl geriausias pasirinkimas yra trigubas buferis.

Pažiūrėkime, kas yra buferis žaidimuose?

Buferis taip pat naudojamas žaidimų vaizdams perduoti. Žaidimai naudoja ir dvigubą, ir trigubą. Dvigubas buferis skirtas silpnesniems kompiuteriams ir OS, o trigubas buferis – galingesniems.

Jei naudojate trigubą buferį silpnoje OS, žaidimas gali sugesti. Kitaip tariant, našumas priklauso nuo to, kokio tipo procesas vyksta jūsų kompiuteryje. Žaidimai taip pat skirtingi, su skirtingais reikalavimais asmeniniam kompiuteriui ir OS.

Pasirinkti buferio tipą yra gana sunku, nes žaidimų gamintojai savo kūrinius kuria įvairiais būdais. Štai kodėl žaidimų forumuose dažnai girdėsite, kaip tam tikras žaidimas neveikia gerai naudojant trigubą buferį ir atvirkščiai.

Idealiu atveju gamintojai turėtų nurodyti konkretaus žaidimo sistemos reikalavimus, jo suderinamumą su įvairiomis operacinėmis sistemomis, buferio palaikymą ir pan.

Jei gamintojas nepateikė konkrečios informacijos apie suderinamumą, galite tai patikrinti patys. Bet kokiu atveju tai tik gaišina laiką, nepadarys jokios žalos kompiuteriui. Nesuderinamumą galima pastebėti beveik iš karto, nes tai atsispindi grafinės vizualizacijos slopinimu ir prastu vaizdo ir garso sinchronizavimu.

Apie išvesties buferį

Išvesties buferis yra gana naudingas dalykas. Šią funkciją sudaro visos scenarijaus išvesties sudėjimas, slapukų antraščių ir kitų gautų specifinių scenarijų pridėjimas. Užbaigus informacijos apdorojimą, visi duomenys klientui siunčiami atvirkštine tvarka, tai yra, pirmiausia antraštės, tada puslapis ir tada scenarijaus rezultatas.

Išėjimo buferio galia

  1. Slapukų siuntimas iš bet kurios scenarijaus vietos.
  2. Sesija prasideda bet kuriuo metu.
  3. Duomenų suglaudinimas prieš siunčiant juos klientui.

Atminkite, kad suspaudimui reikės papildomų procesoriaus išteklių. Tačiau perdavimo greitis padidės 40% (priklausomai nuo nuotraukų ir teksto skaičiaus). Yra žinoma, kad nuotraukos suspaustos daug blogiau nei tekstas. Išvesties buferis neįjungtas pagal numatytuosius nustatymus.

Yra 2 būdai, kaip įjungti išvesties buferį:

  1. Tinka tiems, kuriems priklauso pats serveris arba kurie turi prieigą prie php.ini failo. Viskas, ko reikia, yra šiame faile rasti direktyvą output_buffering ir priskirti jai reikšmę On.
  2. Antrasis būdas yra naudoti ob_start() scenarijuje, kurio išvestis turi būti buferizuota.

Taigi mes išsiaiškinome, kas yra buferis.

; vaizdo išvesties metodas, leidžiantis išvengti arba sumažinti skaičių artefaktai.

Trigubas buferis leidžia padidinti vaizdo išvesties greitį, palyginti su dvigubas buferis. Realiose programose tai dažnai apima bandymą abstrahuoti grafines operacijas nuo sinchronizavimo su atnaujinimo dažniu stebėti. Paprastai kadrai piešiami mažesniu arba didesniu už ekrano atnaujinimo dažnį (kintamą kadrų dažnį) be įprastų efektų, kuriuos tai sukeltų (būtent mirgėjimo, poslinkio, plyšimo). Nes programa nereikia apklausti aparatinės įrangos, kad gautų ekrano atnaujinimo įvykius, algoritmas gali būti laisvai vykdomas kuo greičiau. Tai nėra vienintelis prieinamas trigubo buferio metodas, tačiau jis yra vyraujantis architektūroje PC, kur automobilio greitis gali labai skirtis.

Kitas trigubo buferio sudarymo būdas apima sinchronizavimą su ekrano atnaujinimo dažniu, naudojant trečiąjį buferį tiesiog kaip būdą suteikti laisvos vietos pakeitimų užklausoms bendroje grafikos išvestyje. Čia buferis naudojamas tikrąja prasme, kur jis veikia kaip saugykla. Šis metodas kelia didesnius minimalius reikalavimus aparatūra, bet užtikrina pastovų (palyginti su kintamu) kadrų dažnį.

Trigubas buferis apima trijų buferių naudojimą, tačiau metodas gali būti išplėstas iki bet kokio buferių skaičiaus, kurio reikalauja programa. Paprastai keturių ar daugiau buferių naudojimas neduoda jokios naudos.

Enciklopedinis „YouTube“.

    1 / 3

    ✪ „YouTube“ vaizdo įrašų buferizavimas

    ✪ „YouTube“ vaizdo įrašų buferis „Mozilla Firefox“ naršyklėje

    ✪ Žiūrėkite vaizdo įrašus internete be pertraukų!!!

    Subtitrai

Dvigubo buferio trūkumai

Jei sistema turi du buferius A ir B, ji gali rodyti buferį B ir tuo pačiu metu generuoti naują vaizdą buferyje A. Kai vaizdas buferyje A yra paruoštas, sistema turi palaukti, kol monitoriaus spindulys grįš, kad pakeistų buferius. Šis laukimo laikotarpis gali trukti kelias milisekundes, per kurias neliečiamas nė vienas buferis. Kai baigiamas vertikalus nuskaitymas, galite pakeisti buferius A ir B ir pradėti kurti vaizdą buferyje B (puslapių perjungimas) arba nukopijuoti buferį A į buferį B ir įtraukti į buferį A.

Trigubo buferio privalumai

Jei sistemoje yra trys buferiai: A, B ir C, jai nereikia laukti, kol buferiai pasikeis. Jis gali rodyti buferį B, sukurdamas vaizdą buferyje A. Kai vaizdas buferyje A yra paruoštas, jis iš karto pradeda kurti vaizdą buferyje B. Kai vertikalus nuskaitymas yra pauzė, rodomas buferis A ir buferis B yra išleistas pakartotiniam naudojimui.

Trigubo buferio apribojimai

Jei sistema visada užpildo buferius per trumpesnį laiką, nei reikia buferiui parodyti ekrane, kompiuteris visada lauks monitoriaus signalo, nepaisant buferių skaičiaus. Šiuo atveju trigubas buferis neturi pranašumo prieš

Grįžkime prie mūsų pavyzdžio, kai atnaujinimo dažnis yra 75 Hz ir 100 kadrų per sekundę.
Kai įjungtas vertikalus sinchronizavimas, vaizdo artefaktai išnyksta.
Kai atvaizdavimo greitis ypač sudėtingose ​​scenose sumažinamas iki maždaug 60 kadrų per sekundę ir įjungta VSync, faktinis kadrų skaičiavimo greitis sumažėja beveik perpus.

Kitaip tariant, Vsync kartu su dvigubu buferiu yra geras tik tada, kai atvaizdavimo greitis nenukrenta žemiau atnaujinimo dažnio, nes kitais atvejais našumas smarkiai krenta.

Sutikite, būtų keista, jei inžinieriai nerastų šios problemos sprendimo.
Kad atvaizdavimo greitis nesumažėtų laukiant, kol atsilaisvins pirminis buferis, buvo sukurta trigubo buferio technologija – tai yra, prie aukščiau aprašytos schemos buvo pridėtas dar vienas kadrų buferis.
Dėl šios priežasties kortelei nereikia laukti, kol atsilaisvins pirminis buferis, ir apskaičiuoja vaizdą šiame trečiajame buferyje.

Trigubas buferis veikia taip (esant 50 kadrų per sekundę atvaizdavimo greičiui ir 75 Hz monitoriaus atnaujinimo dažniui).
Pirmasis kadras yra pirminiame buferyje, du trečdaliai antrojo kadro apdorojami antriniame buferyje.

Atnaujinus ekraną pirmuoju kadru, paskutinis antrojo kadro trečdalis patenka į antrinį buferį, o trečiojo kadro trečdalis pradedamas „atvaizduoti“ trečiajame buferyje.
Po antrojo ekrano atnaujinimo su pirmuoju kadru antrasis kadras nukopijuojamas į pirminį buferį, o pirmasis trečiojo kadro trečdalis perkeliamas į antrinį buferį.

Likę du trečdaliai trečiojo kadro apdorojami trečiajame buferyje, pirmasis ekrano atnaujinimas įvyksta su antruoju kadru, o trečias kadras visiškai perkeliamas į antrinį buferį.
Tada šis procesas kartojamas nuo pat pradžių.

Kaip galite lengvai apskaičiuoti, šiuo atveju du kadrai rodomi ekrane per tris atnaujinimo ciklus, o tai yra du trečdaliai nuskaitymo dažnio, ty 50 kadrų per sekundę, ir tai yra visas galimas pavyzdžio atvaizdavimo greitis. klausime.
Dėl trigubo buferio schemos vaizdo plokštės tuščiosios eigos laikas yra sumažintas iki minimumo ir, kaip matome, tai duoda labai gerų rezultatų.

Deja, ne visi kompiuteriniai žaidimai palaiko trigubą buferį.
Be to, tai užima skaičiavimo išteklius ir tam tikrą vaizdo atminties dalį.
Tačiau šiuo metu šiai technologijai nėra jokios alternatyvos norint gauti aukštos kokybės vaizdus esant mažam atvaizdavimo greičiui.

Perskaičius šią medžiagą kai kam gali kilti klausimas: ar verta vaizdo plokštės nustatymuose įjungti vertikalią sinchronizaciją ar geriau ją išjungti?
Aiškaus atsakymo į šį klausimą nėra.
Akivaizdu, kad jei norite tiesiog pamatyti, ką gali jūsų vaizdo plokštė, ir atlikti kai kuriuos sintetinius ar žaidimų testus, geriau išjungti „VSync“.

Tokiu atveju jūs nesinaudosite vaizdu ar žaidimu, o tiesiog norite gauti informacijos apie maksimalų vaizdo plokštės našumą tam tikrais matavimo vienetais.
Beje, visi GPU testai atliekami išjungus vertikalią sinchronizaciją, todėl realiose žaidimo situacijose kortelė gali pasirodyti pastebimai lėtesnė nei buvo aprašyta konkrečiame teste.

Jei norite gauti aukščiausios kokybės vaizdą be artefaktų, turėtumėte įjungti vertikalųjį sinchronizavimą.
Vienintelis šio sprendimo trūkumas bus staigus našumo sumažėjimas ypač sudėtingose ​​scenose, kai atvaizdavimo greitis tampa mažesnis nei monitoriaus atnaujinimo dažnis.

Tai galima išspręsti tik tuo atveju, jei konkreti programa palaiko trigubą buferį, priešingu atveju turėsite arba išjungti VSync, arba pripažinti, kad laikinai kuklus našumas yra neišvengiamas faktas.

Pažvelkime į ATI (Catalyst Control Center) vaizdo plokščių „Control Center“ pavyzdį, kad pamatytume, kaip įjungti arba išjungti vertikalųjį sinchronizavimą ir trigubą buferį.
Primename, kad „Catalyst Control Center“ veikia tik tada, kai sistemoje yra įdiegta .NET Framework 1.1 aplinka, kurią galima nemokamai atsisiųsti iš „Microsoft“ svetainės.

Nebūtina naudoti šios programos - visos ATI vaizdo plokštės gali veikti su tradiciniu „Control Panel“.

Norėdami pasiekti „VSync“ nustatymus, kairėje esančiame „medyje“ turite pasirinkti 3D elementą ir antrinį elementą „Visi nustatymai“ - skyrių „Laukti vertikalaus atnaujinimo“.
Numatytieji nustatymai yra šie: „Vsync“ išjungtas, tačiau jį gali įjungti veikianti programa.

Tai yra pats protingiausias nustatymas ir daugeliu atvejų jo nereikėtų keisti.
Jei perkelsite svirtį į kraštinę kairę, VSync bus priverstinai išjungtas, o jei pasuksite svirtį į kraštinę dešinę, ji bus priverstinai įjungta.
Pozicija į kraštą kairėje užtikrins aukščiausią įmanomą našumą, o pozicija į dešinę – aukščiausią kokybę.

Čia galite įjungti vertikalią sinchronizaciją, tačiau jei programai to nereikia, ji nebus naudojama.

Galite įjungti trigubą buferį, eidami į elementą „3D“ ir „API Specific“ antrinį elementą.
Čia iš karto tampa aišku, kodėl ne visi žaidimai palaiko šią funkciją: trigubas buferis galimas tik toms programoms, kurios dirba su OpenGL programavimo sąsaja (API).
Atitinkama eilutė pateikiama šios API nustatymuose - antras elementas iš apačios.
Pagal numatytuosius nustatymus trigubas buferis yra išjungtas.

Galiausiai dar kartą pabrėžiame, kad visa tai, kas išdėstyta aukščiau, galioja ir CRT, ir LCD monitoriams.
Nepaisant esminių vaizdo išvesties principų skirtumų, vaizdo plokštei (tai yra jos tvarkyklei, operacinei sistemai ir konkrečiai programai) tai yra to paties tipo įrenginiai, į kuriuos generuojami kadrai siunčiami tam tikru dažniu.

Tačiau skystųjų kristalų ekranų savininkams pasisekė labiau: šiems monitoriams įprastas nuskaitymo dažnis yra tik 60 Hz, o jei turite galingą vaizdo plokštę, atvaizdavimo greitis retais atvejais nukris žemiau 60 kadrų per sekundę.

Tikimės, kad šis trumpas straipsnis padėjo jums gauti atsakymus į klausimus, kurie pavydėtinai reguliariai pasirodo vaizdo plokščių forumuose.
Kaip matote, viskas gana paprasta, bet ir dviprasmiška...

„Windows 10“ kaupiamasis naujinimas 1903 KB4515384 (pridėta)



 

Gali būti naudinga perskaityti: