Názory k článku
Grafické karty a grafické akcelerátory (31)
grafika Falcon030
celé vláknoJe zajímavé, že čím větší velikost takto definované videoram, a čím větší obnovovací frekvence, tím užší hrdlo má CPU do RAM, protože většinu šířky pásma zabral VIDEL. Takže náročná grafika v podstatě zpomaluje běh programů. Proto vedlejším efektem spořičů obrazovky, které přeprogramují VIDEL tak, aby nevysílal horizontální či vertikální obnovovací pulzy a tak vlastně přiměl VESA VGA monitor, aby přešel do proud šetřícího spánku, zároveň urychlí i běh programů, protože VIDEL vůbec nezdržuje na sběrnici.
Re: grafika Falcon030
celé vláknoPrave diky rapidnimu zahlceni pametove sbernice se dnes vyrobci uchyluji k oddeleni RAM a video RAM (nejenom u PC), pro staticke sceny je to idealni, u dynamickych scen naopak vykon ztraci.
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoAno, a jako na potvoru lze predpokladat, ze firefox nepouziva pro scrollovani akceleraci ...
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoKdyby tam aspon byla dodelana takova ta skoro zapomenuta featurka z T602: pri male rychlosti graficke karty se prekreslovala pouze vrchni a spodni cast obrazu, tak bych si zvykl. Ale pri pitomem skrollu o jeden radek prenest cca 2 MB dat - to je dost velke plytvani vykonem, mymi nervy a baterkami :-)
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoA co to je za masinu? Vdyt i u neakcelerovanyho rezimu by mela bejt prenosova rychlost RAM-LFB par desitek MB/s u PCI grafiky a par set MB/s u AGP grafiky. Sou spravne naprogramovany MTRR registry? Nevim jesi to linux defaultne zapne uz pri bootu nebo az Xka. Napr. v DOSu to nikdo nepreprogramuje a tak bezi VESA grafika nekolikrat pomalejs nez by mela, na to sem si napsal jednoduchou utilitu. Windowsy to obvykle zapnou, tam neni problem.
Re: grafika Falcon030
celé vláknoA nemeni to nic na tom, ze nepouzit alespon zakladni akceleraci framebuffer dost poskozuje.
Re: grafika Falcon030
celé vláknoJen sem chtel rict, ze se da bez problemu naprogramovat plynulej scrolling i bez akcelerace, jen pristupem pres LFB. Dyk treba takovej Duke Nukem 3 taky bezel ve VESA a nijak necukal a to i na pomalejsich strojich....
Jen pro poradek dodavam, ze MTRR maj byt naprogramovany do rezimu write-combining (misto defaultniho uncached) pro danej rozsah adres framebufferu. Pak se pouziva nakej burst zapis/cteni LFB kery je mnohem rychlejsi.
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoPokud je to napsany spravne a vyuziva se napriklad prenos bus-master, tak si vlastne procesor odpocine a nezacne se "probouzet", jak to na notasu (zbytecne) dela prave pri scrollingu.
Abych pravdu rekl, tak nevim, jak je naprogramovany framebuffer pro Linux, ale podle praktickych zkusenosti to vidim prave na ty "rep movsd" :-) Podotykam, ze se porad bavim o konzolovem framebufferu, X-ka s timto nemaji zadny problem (teda krome alfa blendingu, ale to jsme na vyssim levelu :-)
Re: grafika Falcon030
celé vlákno62 MB/s vs 315 MB/s pri zapisu dat z RAM do LFB. Nevim jakou instrukci se to provadi, pouzivam ceckovou movedata(), typuju MOVSD.
Podle me je i tech 62 MB/s dostatecnych na rozumne rychly scrolling. Ja v linuxu framebufer nepouzivam, tak ani nevim jesi skroluje jako po pixelech (hladce) nebo po celych radcich. No takze treba pro 1024/768/32 by bylo potreba ~50ms na precteni LFB, dalsich ~50ms na zapis LFB na novou pozici, takze by se to melo porad hybat nakych 10FPS...
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoNo je to mozny, asi to zalezi jak ma ACPI dlouhy ty timeslicy, na mojom desktopu to je v radu jednotek milisekund. Urcuje se pomer kolik slicu to bude spat a kolik to bude vzhuru. Ale nejsem zadnej expert na PM, jen sem si hral sn akou utilitou co to umoznuje nastavovat.
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoSice se to dalo naemulovat pres UniVBE, ale pokud to karta proste neumela, tak se pozuival bankswitch a narust rychlosti byl nulovej. VBE 3.0 nepridava nic zasadniho, za zminku stoji moznost naprogramovani refresh rate pres standartizovany CRTC, takze pak neni problem si nastavit nakou ergonomickou frekvenci.
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknotextu používá double-buffering --- nejřív si stránku
překreslí do paměti a pak paměť naráz zkopíruje do videoram.
Je to proto, aby stránka neblikala.
(asi kvůli nějakému bugu na chvíli překreslil nesmyl)
Netscape tohle neměl a aby to neblikalo, řešil to tak, že
začal zobrazovat, až když bylo přesně dáno, na kterou pozici
co přijde --- t.j. např. tabulku zobrazil, až když ji měl
celou; pokud byl v textu obrázek neznámé velikosti, počkal
se zobrazováním textu, dokud tento obrázek nenatáhl.
V grafickém linksu double-buffer nepoužívám (kvůli
pomalosti), tam jsem problém s blikáním vyřešil tak, že
vykreslovací rutina vykreslí každý pixel právě jednou.
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoTed me napadlo, jestli firefox neni "akcelerovan" tim, ze kdyz scrollujete rychle, neposouva po radkach ale rovnou po vetsich kusech ...
Re: grafika Falcon030
celé vláknopřekreslování bez akcelerace je na něm dost pomalé a firefox
a mozilla scrollují rychle.
Gtk nemá s akcelerací co dělat, gtk používá xlib, xlib
posílá požadavky xserveru a xserver dělá akceleraci. Takže
záleží na tom, jaký máte xserver, případně jak je nastavený.
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoOno to scrollovani neni tak jednoduche, jak se na prvni pohled zda (ale to urcite vis). K dispozici jsou ruzne strategie, ktere se lisi rychlosti a kapacitou alokovane pameti. Pokud je dost pameti, tak je nejrychlejsi vyrendrovat celou stranku a potom ji jenom blitovat na obrazovku (nebo se posouvat ve Video RAM). Tolik pameti vsak vetsinou neni k dispozici, proto se musi vyrenderovane casti vhodne kesovat, aby to pri scrollingu porad nemuselo prekreslovat ty stejne casti.
Pekne je to videt na GhostScriptu/GhostView, a to diky tomu, ze je extremne pomaly :-)
Re: grafika Falcon030
celé vláknoRe: grafika Falcon030
celé vláknoNapriklad PostScriptove tiskarny nedelaji celou dobu nic jineho a to v mnohem vyssim rozliseni nez je pitome CRT. Zatimco GhostScript musi vyrenderovat cca 1024x768 pixelu, tj. necely milion (dobre at nezeru, tak dva miliony, kdyz to renderuje i spodni pulku), tak si tiskarny musi poradit napriklad s 600x8x600x10=cca 29 miliony pixelu a dneska je to vlastne jeste ctyrikrat vic (u 1200 DPI). A nerekl bych, ze tam maji nejak extra rychle procesory.
PDF je taky zalozene na PostScriptu a renderuje se neskonale rychleji, takze tady to spis bude problem pomaleho interpreteru nebo renderovace v GhostScriptu.
Re: grafika Falcon030
celé vláknoPDF je sice zalozene na postscriptu, ale je v mnoha smerech zjednodusene (v jinych naopak rozsirene, pravda). Myslim, ze nektera z tech zjednoduseni byla za ucelem zrychleni ...
Re: grafika Falcon030
celé vláknoZ praktickeho hlediska mi tam vadi neexistence funkce "zoom window", takhle pohled musim pri zkoumani nejake titernosti slozite zvetsovat, zmensovat a posouvat, coz pri pomalosti renderovani uzasne zpomaluje praci. Nebo by stacilo neco na zpusob "zvetsovaciho skla", ktery je implementovany v mnoha DVI prohlizecich (to stejne bych nekdy potreboval i u Firefoxu, kdyz neco doladuji na pixely :-).
Falcon 030
celé vláknoTrosku bych doplnil k tomu Falconu. Jeho graficky chip se jmenuje VIDEL, ktery na vystupu podporuje jak RGB tak VGA monitory. Je velice pruzny, takze se da "naprogramovat" pro ruzna rozliseni a neni nutne vybirat jenom z prednastavenych.
Rozliseni mohou byt bud plane orientovana (monochrom, 4, 16, 256 barev) nebo nebo muze bezet v 15 nebo 16 bitovem "chunky" rezimu. Barevna paleta pro bitplanove rozliseni je az 244000. Velikost frame bufferu, ktery lezi v hlavni pameti, se samozrejme muze hodne lisit. Monochromaticky obraz zabira zhruba 32KB, v barevnych rezimech to muze byt klidne i megabyte. Se zvetsujicim se framebufferem ale dochazi k zahlcovani pomale sbernice a system se tak zpomaluje.
Kvuli ruznym typum zobrazovacu, muze byt VIDEL taktovan z nekolika zdroju. Zakladni je 25 MHz (pro RGB rozliseni), dalsi je odvozena od hlavniho oscilatoru, ktery bezi bez pretaktovani na 32MHz (hlavni CPU bezi na polovine teto frekvence) nebo je mozno i pripojit externi oscilator treba pro uz zmineny genlocking. Rozsah generovanych frekvenci obrazu je taky pomerne dobry, jenze dosazitelna frekvence rapidne klesa s narustajicim rozlisenim. Vyhodne je tedy pouziti LCD monitoru, ktery je schopny zobrazovat i 1024x768 bodu na 50Hz bez velkeho blikani.
ATARI a sprites
celé vláknosice som mal ATARI 800XE, ale aj tak myslim, ze to bolo na vsetkych ATARI 8bitoch rovnake...
Re: ATARI a sprites
celé vlákno48 bajtů RAM, 100 pohybujících se předmětů
celé vláknoRe: 48 bajtů RAM, 100 pohybujících se předmětů
celé vláknoRe: 48 bajtů RAM, 100 pohybujících se předmětů
celé vláknoPolohu si nemohu uložit, protože nemám dost paměti, a počítat před každým řádkem to zase nestihnu. S 256 bajty už je to lepší.
Re: 48 bajtů RAM, 100 pohybujících se předmětů
celé vláknoRe: 48 bajtů RAM, 100 pohybujících se předmětů
celé vláknoRe: 48 bajtů RAM, 100 pohybujících se předmětů
celé vláknoNevíte někdo jestli existuje předělávka na PC ?
Re: 48 bajtů RAM, 100 pohybujících se předmětů
celé vláknoRe: 48 bajtů RAM, 100 pohybujících se předmětů
celé vláknograf. režimy u 8bit atari
celé vláknoCo mne zaráží, že u 8bit. Atari, i když byla Tramielem po jeho příchodu do firmy podporována renesance těchto mašinek v novém kabátě, nevznikaly žádné nové programy a hry.
Jaké byly skutečné možnosti grafiky?
Nebyla grafika 320*192 jen černobílá?
Jaké fyz. rozlišení bylo u spritů (vzhledem k rozlišení plochy), kolik mohly mít barev?
Spíše mi připadá. že se v tomto případě jedná o precizně provedenou technologii 70. let...
Re: graf. režimy u 8bit atari
celé vláknoskutocne moznosti grafiky... no, hmm, to sa da tazko jednoznacne povedat, doslova zalezi od doby - napr v sucasnosti nie je problem 160x192x256 farieb alebo 640x192 (rozne triky s ANTICom)... ale hej, tych 320x192 je dvojfarebna.
sprites - vertikalne neobmedzene, horizontalne 8 pixelov v najjemnejsej grafike, ktore sa dali skalovat (2x, 4x) a farby mohli mat z celej palety (128 farebnej).
ale inak mas pravdu - tramiel pre technologiu 8bit atari nespravil nic. takze islo fakt o pouzitie toho perfektneho navrhu este zo 70-tych rokov.
Re: graf. režimy u 8bit atari
celé vláknoTake bylo mozne playfield rozsirit na cca 384x224 pixelu. Horizontalne se totiz dalo volit mezi 256, 320 nebo 384 pixely, vertikalne zalezelo na display listu, takze se k tem standardnim 192 dalo cca 32 radku bez problemu pridat (potom pry blbla synchronizace, ale to je spis problem NTSC nez PALu).
Co se tyce spritu a strel, tak ty byly barevne nezavisle na pozadi a jejich maximalni rozmery byly 8x256 pixelu (sprity) a 2x256 pixelu (strely). Kazdy sprite byl jednobarevny, ale opet se barvy daly menit v prubehu horizontalniho zatemneni. Nektere hry "jakoby" zobrazovaly i vice spritu, jednoduse si totiz prepsaly pamet se sprity v horizontalnim zatemneni, takze jeden fyzicky sprite se na obrazovce vyskytoval nekolikrat (nemohl vsak byt na stejne horizontalni urovni, ale "pod sebou").
Re: graf. režimy u 8bit atari
celé vláknoSvého času jsem napsal klon Tetrisu, který tyto triky používal na obarvení kostiček. Bude-li zájem, mohu ho vystavit. Zajímavé je, že emulátor atari800 má časování dokonale vychytané a v poslední verzi již funguje zcela přesně.
Re: graf. režimy u 8bit atari
celé vláknoTen refresh DRAM byl opravdu synchronizovany s horizontalnim rozkladem, vyjimkou byl tusim gr.0 (textovy rezim), kde se to na zacatku snimku neustihalo a tak se misto deviti (?) refreshu provadel jen jeden. Ale uz je to tak davno, ze si presne casovani nepamatuji, jen vim, ze gr.0 byla takova specialitka.
To obarveni kosticek (=zmenu barvoych registru) jste stihal provadet pro jednotlive pixely? To se na 6502 snad ani neda ustihat, ale rad se necham poucit.
Re: graf. režimy u 8bit atari
celé vláknoZdroják jsem našel, ale nevyznám se v něm. Večer ho dám na své stránky.
Re: graf. režimy u 8bit atari
celé vláknoKazdy strojovy cyklus odpovida delce trvani vykresleni dvou obrazovych bodu, tj. rozliseni by bylo pouze 228 pixelu horizontalne. Pouze gr.8 (a na nej navazujici gr.9, 10 a 11) ma vyjimku, tam pixely trvaji pouze 1/2 obrazoveho bodu - tady se to pekne plete s dnesnim nahledem na pixely jako obrazove body. Horizontalni zatemneni trva 40 strojovych cyklu.
Obnoveni trva opravdu 9 strojovych cyklu (to mam pamet!), dalsi cykly zabere DMA pro hrace a strely (to se provadi v horizontalnim zatemneni) a take pro display list.
Takze barvu opravdu nejde zmenit pro kazdy pixel (114<<320), odhaduji, ze pro takovou osmici sousednich pixelu to je mozne (zalezi na tom, jak je program napsan, zda si barvy pamatuje v nulte strance pameti atd.)
Re: graf. režimy u 8bit atari
celé vláknoPokud se dobře pamatuji, časování paprsku jsem použil na obrázky kostiček vlevo od hrací plochy.
Re: graf. režimy u 8bit atari
celé vláknoTo už ale asi není graf. mód, ale spíše graf. trik.
Přepínat trikově umělo barvy i ZX Spectrum (např. po 8x1 či 4x4 pixelech...)
a umí to vlastně i každý počítač s definovatelnou paletou barev
(Amstrad CPC, Sam Coupe, Atari ST...)
Jenže to časování zabírá strojový čas, neboť instrukce CPU nahrazují graf. procesor...
Re: graf. režimy u 8bit atari
celé vláknoAle nevim, jak jinak popsat grafiku u osmibitovych pocitacu, aby se daly mezi sebou srovnavat. Dneska je to jednoduche - horizontalni x vertikalni rozliseni x pocet barev x snimkova frekvence (nebo frekvence pixelclocku). Ale prakticky vsechny osmibity nejak obchazely omezene mnozstvi pameti pro framebuffer - at uz to jsou sprity ci "blokove" atributy u Spectra ci C=.
Snad "nejhorsi" je to u Amigy, zejmena u HAM rezimu. Jak se tento rezim da popsat - prece to neni rezim, kde muzu obarvit kazdy pixel jakoukoli barvou...
Re: graf. režimy u 8bit atari
celé vláknoGraficky je na tom Atarko srovnatelne napriklad s C64, v necem je to lepsi (display list, organizace pameti), v necem zase horsi (sprity). Pri produkci her vsak az tak nezalezi na HW kvalitach, ale na rozsireni, podpore atd.
Re: graf. režimy u 8bit atari
celé vláknoViz jinak na porovnání třeba tu: http://porovnani8bitu.spaces.live.com/
Re: graf. režimy u 8bit atari
celé vláknoTak tohle je bohužel pravda, Atari jsem v tomto nikdy nepochopil, vůbec nevím, proč ani nejnovější hry nemohli pořádně promakat, všechno to vypadalo jak na počítačích o 10 let zpátky. Přitom na C64 vyšly i takový hity jako Elvira (prakticky srovnatelná s verzí Amigy) aj.

