Hlavní navigace

Vlákno názorů k článku Accelerated graphics port (AGP) a sběrnice PCI-X od Medvěd - Prosím autora o nějaké rozvedení kapitoly 4. Nerozumím...

  • Článek je starý, nové názory již nelze přidávat.
  • 23. 10. 2008 15:09

    Medvěd (neregistrovaný)
    Prosím autora o nějaké rozvedení kapitoly 4. Nerozumím přesně co tam má ma mysli pod pojmem vyrovnávací paměť. Moje představa je, že texturu přenáším z operační paměti do videoadaptéru, tak sakra jaká vyrovnávací paměť ?
    K tomu režimu, který se podobá starým 8bitům: mám tomu rozumět tak, že videopaměť se objeví na fyzických adresách v rozsahu operační paměti ?
    Děkuji.
  • 23. 10. 2008 15:24

    Pavel Tišnovský
    Pokud je na grafickém akcelerátoru méně paměti, než je zapotřebí pro framebuffer+textury (+vertexy atd), dají se přes AGP přenášet textury přímo z operační paměti. V klasickém režimu by se přenos prováděl takto:

    [operační pamět] -> [AGP] -> [texturovací paměť] -> [rendering]

    To však nemá moc smysl právě při nedostatku paměti na gfx. akcelerátoru, takže se texturovací paměť z tohoto řetězce dá vynechat a akcelerátor textury přímo načítá z operační paměti. Je to pomalejší, to jistě (už jen proto, že datové cesty uvnitř akcelerátoru nemusí být omezeny na 32/64 bitů), ale při nedostatku paměti je to lepší řešení než si pořád přepisovat texturovací paměť nebo omezovat framebuffer. Zda se textura přenáší celá nebo se stripuje je již do jisté míry interní záležitost grafického akcelerátoru resp. jeho ovladačů.

    Druhý dotaz - přesně tak, přímé mapování. Ono je to samozřejmě pravda i u PCI karet, zde jsou však přenosy efektivnější vzhledem k vytížení.
  • 23. 10. 2008 18:16

    BLEK. (neregistrovaný)
    "mám tomu rozumět tak, že videopaměť se objeví na fyzických adresách v rozsahu operační paměti ?"

    Ne, to znamená, že se (potenciálně nesouvislá) část operační paměti objeví na adresách, které vidí grafická karta. Jaká část to bude, určuje ovladač agpgart.

    Čili si pomocí toho můžeš udělat to, že si funkcí malloc() naalokuješ paměť, nahraješ do ní texturu, a pak, aniž bys tu texturu musel někam kopíroval, necháš 3D akcelerátor tu texturu vykreslovat.

    Videoram takhle namapovat do operační paměti nejde, protože na té sběrnici nemáš zaručenou dobu přístupu --- čili by ti ten obraz vypadával podle momentálního vytížení počítače. Používat operační paměť jako videoram umí jen on-board karty Intel.