Stránka 1 z 1

Voodoo 2 a využití paměti

Napsal: úte kvě 03, 2005 1:49 pm
od no-X
3dfx.fun píše:Klidně. Já SLI nepotřebuju. Je to pro Glide gamesy :wink:

btw: V2 (v.8MB) má 4MB na frame a 4MB na textury ne? 12MB má 4MB frame/8MB textury :wink:
V2 má ale dvě TMU, tzn., že každá má polovinu, sdílet to nelze :-) takže 8MB V2 má 2MB/TMU a 12MB V2 má 4MB/TMU ;-)

/edit: přesunuto z bazaru

Napsal: úte kvě 03, 2005 3:09 pm
od swarm
no-X píše:V2 má ale dvě TMU, tzn., že každá má polovinu, sdílet to nelze :-) takže 8MB V2 má 2MB/TMU a 12MB V2 má 4MB/TMU ;-)
Mám za to, že při single texturingu se ty textury rozhazujou rovnoměrně podle využití paměti, protože stejně jedna z těch jednotek v tu chvíli nejede. Ale jistej si tim nejsem, asi si na tom udělám nějaké testy, než rozdám tu poslední kartu.

Napsal: úte kvě 03, 2005 3:35 pm
od no-X
To by mě taky zajímalo, ale podle toho, jak vypadá PCB (a taky, že je to stejná architektura jako V1, kterou v případě profi karet můžeš o druhou TMU rozšířit přídavným PCB) mi nějak nejde do hlavy, jakým způsobem by TMUs mohly vzájemně sdílet paměť. Nebo jeto propojený až přes FBI? To se mi ale taky moc nezdá... V tom případě by přidání Amethystu na Obsidian:

Obrázek

Znamenalo navýšení výkonu i při single-texturingu a na to jsem nikdy nenarazil...

Napsal: úte kvě 03, 2005 8:37 pm
od swarm
Tak jsem na to teďka trochu mrkl :arrow:
Jj, ten systém té hierarchie a propojení mezi jednotkami je u V1 a V2 stejný (tj. je tam i stejný systém toho co popíšu níže). Já jsem nenapsal, že by mohli mít ty TMU mezi sebou sdílenou paměť. To opravdu nejde. To co mám namysli je jiný postup, dejme tomu, že máme SST-1 s 2ma TMU (když už si jí tu nadhodil):

Pokud budeme vykreslovat multitexturovaný triangl, tak se nám první textura vloží do paměti sekundární TMU a druhá textura do paměti primární TMU. Při vykreslování pak jde první textura ze sekundární TMU do primární, kde se složí s druhou texturou z paměti první TMU. Výsledek se pak vyšle na FB jednotku. :arrow: Ani zde se nám vlastně pamět nemusí zaplňovat rovnoměrně, protože textury při multitexturingu nemusí být stejně velké. I když jak teď nad tím přemýšlím, tak vlastně to API si ty větší textury může házet na přeskáčku, protože co jsme kdysi dělali nějakou hříčku, kterou jsme testovali i na Voodoočkách, tak V1 i V2 umí pouze additivní a multiplikativní blending, tudíž nezáleží na pořadí TMU (to je právě ta mnou oplakávaná extenze GL_ARB_texture_env_combine, která na těchto kartách chybí, ta zprostředkovává další blending módy mezi texturovými jednotkami). Kdyby se vlastně nemohly umisťovat větší textury na multitexturing do jednotky, která má zrovna více volné paměti, tak by se celkem snadno stalo, že už nemůžeme nahrát žádnou texturu, protože paměť primární TMU je zaplněná, zatímco paměť sekundární TMU má ještě z části volno.

U single texturingu jde o něco podobného. Podle specifikací můžeme mapovat celou texturovou paměť s tím, že určujeme, do které TMU se textura nahraje (což zase obsluhuje API). Tudíž zase můžeme rozmisťovat textury rovnoměrně mezi TMU. Pokud tedy vykreslujeme single texturovaný triangl, který má texturu v paměti první TMU, tak se textura normálně pošle z TMU rovnou do FB (...aby se složila s barvou pixelu, jak už se to tak ve FB na Voodoo u každého pixelu dělává - narozdíl od většiny ostatních dobových karet :)). Pokud ale máme texturu pro daný triangl v paměti druhé TMU, tak ta se z ní normálně načte, pošle se do první TMU, tam se s ní nic nestane a putuje dál do FB jako v prvním případě.

Uff, snad je to z toho pochopitelné.

Než jsem to odeslal tak jsem se došel najíst a prokoukl trochu datasheet k SST-1 a je to tak jak jsem napsal. Kdyby se u single texturingu nepoužíval tenhle způsob, tak by byla ta paměť dost neefektivně využitá - to by si teda inženýři z 3dfx rozhodně nedovolili, zas tak levná nebyla :).

Napsal: úte kvě 03, 2005 9:36 pm
od no-X
swarm píše:Kdyby se u single texturingu nepoužíval tenhle způsob, tak by byla ta paměť dost neefektivně využitá - to by si teda inženýři z 3dfx rozhodně nedovolili, zas tak levná nebyla :).[/i]
Všechno beru, ale tenhle argument ne :-) Podívej na efektivnost využití paměti na V2SLI, nebo na V5 ;-)

Je mi ale divná jedna věc. Není problém najít testy a grafy, který dokazujou, že 12MB V2 je oproti 8MB rychlejší. Ale ještě se mi nepodařilo najít jedinou zmínku, která by potvrzovala, že přidáním druhé TMU (s odpovídající pamětí) by vzrostl výkon při single text.

Možná je to tím, že taková situace byla jen na Q3D Obsidian... Jinou situaci si nějak nevybavuju. Ale ještě mě napadla teorie, jak by se to dalo ověřit: použít 8MB Voodoo2 (4+2+2), změřit výkon na single, a pak v nějakém tweakeru (nebo přes envvar) limitovat kapacitu paměti textur na 2MB a znovu změřit výkon...

Napsal: úte kvě 03, 2005 9:45 pm
od swarm
V single texturingu právě ten výkon nevzroste. Pixel jednotka je pořád jenom jedna (pokud nemáme SLI, ale o to teď nejde). Pixel se zpracovává stále jen jeden za cykl. To, že si textury rozložíme na jednotlivé texturovací jednotky nám přinese pouze efektivnější využití texturovací paměti (lze ji použít celou), ale nárust výkonu není, protože ať jde textura z jakékoli texturovací jednotky, tak jde vždy tím samým přenosovým kanálem do pixel jednotky (FBI).


Ajaj...OT v bazaru jsem snad ještě nerozjížděl :)

Napsal: úte kvě 03, 2005 9:47 pm
od swarm
no-X píše:
swarm píše:Kdyby se u single texturingu nepoužíval tenhle způsob, tak by byla ta paměť dost neefektivně využitá - to by si teda inženýři z 3dfx rozhodně nedovolili, zas tak levná nebyla :).[/i]
Všechno beru, ale tenhle argument ne :-) Podívej na efektivnost využití paměti na V2SLI, nebo na V5 ;-)
Hehe :)
Njn, to jsem napsal jak jsem se vrátil z večeře - to se mi asi odkrvil mozek z toho trávení :D.

Napsal: úte kvě 03, 2005 9:58 pm
od no-X
Jako administrátor tuhle diskuzi prohlašuju za oficiální on-topic :mrgreen:

Jasně, já ti rozumím, ale myslel jsem něco jinýho je mi jasný, že dvě TMU při singletexturingu výkon nenavýší :-) (pokud teda nedojde na trilineární filtraci ;-)

z čeho vycházím: V2 verze s 8MB má nižší výkon (ať při singlu nebo multi t.), než 12MB - zřejmě proto, že paměť na textury (2+2MB) nestačí a musej se tak mnohem častěji natahovat, což přetěžuje sběrnice. Rozdíly výkonu jsou i v desítkách procent.

Pokud může tohle limitovat výkon karty tak výrazným způsobem, tak by se to mělo projevit podobně i v situaci, o který tu teď diskutujueme - tzn. pokud v singlu dokáže primární TMU využít paměť sekundární TMU a my jí to zatrhneme ("limit texture memory to 2MB"), měl by nastat pokles výkonu (podobně jako v případě 8MB vs. 12MB). Pokud by ale pokles výkonu nenastal, znamenalo by to, že primární TMU při singlu využívá jen svojí paměť (2MB) a paměť spadající pod druhou TMU (druhé 2MB) leží ladem.

Snad chápeš ty mě i já tebe ;-)

Napsal: úte kvě 03, 2005 10:50 pm
od swarm
Ahá, takhle to myslíš :) ...no jestli se nechápem, tak za pár postů se určitě pochopíme - před druhou hodinou ranní určitě spát nepůjdu, protože mám ještě dost práce na zítra, takže se nám tu diskuze může ještě pěkně rozrůst :D

Bohužel mi pod rukama procházely jen 12MB verze, takže jsem si nikdy nemohl s žádnou 8MB variantou pohrát. Ale jak o tom píšeš, tak mě to docela dost zajímá - fakt by to chtělo přejít z teoretické roviny a vyzkoušet tam nějaké testy a porovnat ten výkon (pokud máš nějaký linky na testy, tak určitě to sem hoď).
Jde mi o to, kde je výkon 8MB varianty nižší. Pokud se jedná o nějaké testy, kde se musí textury měnit a tudíž by se v té paměti u 8MB verze začaly více fragmentovat (jak je to vlastně s organizací textur v paměti z hlediska fragmentace? a vlastně jak rychlá by ta výměna textur byla :)), tak tam by se to určitě projevilo. Dál může by mohl být problém při multitexturingu, protože se mezi TMU musí ty textury správně rozkládat, takže možná ta 12MB verze má víc možností nějak si to tam líp rozházet (možná :)). Otázka je pokud bychom pustili nějakou hru, která nepoužívá víc jak 4MB paměti pro textury a nepoužívá multitexturing, jaký by byl potom rozdíl výkonu (třeba Turok nebo něco podobnýho by mohl posloužit) - tam by ten rozdíl neměl být velký, jestli vůbec.

Ohledně "limit texture memory to 2MB" - nevím jestli to bude směrodatné, protože při adresaci paměti několik prvních bitů určuje do paměti které TMU se bude textura ukládat a to kam, to jsou až bity za tim, takže je možné tato funkce omezí jen tu maximální hodnotu, kam lze uložit. Ale i tak by se zde různý výkon neměl projevit. My pak stejně nepoznáme ve výkonu, jestli nám to glide rozdělilo tak, že pamět 1. TMU je obsazena z 1,8MB a pamět 2. TMU z 0MB nebo 1.TMU z 1,4MB a 2.TMU z 0,4MB, protože stejně v době kdy při singlu pracuje jedna, tak druhá se fláka nebo naopak.

Blbý je, že Voodoo2 by bylo, ale píšu tady ze svého laptopu, takže bych si tu kartu mohl strčit leda...:) ...snad až o víkendu se najde čas na nějaké testování.

Napsal: úte kvě 03, 2005 11:17 pm
od no-X
Ohledně strkání V2 "někam" už tu thread je, takže případné praktické zkušenosti prosím směřovat tam :roll:

Už zas možná rozumím trochu víc já tobě. Aby to bylo jednoznačný:

Mám 8MB V2 - tj 4MB FBI a 2+2MB TMU...

moje otázka: Mohou být při single-texturingu využity pro textury až 4MB, nebo max. 2MB?

nějaký srovnání 8MB/12MB V2 ti na netu najdu; jednu 8MB dokonce doma mám :-)

-----------

edit: Je to sice něco trochu jinýho, ale

http://www20.graphics.tomshardware.com/ ... ch-02.html

V1 4-4-4 (MB) (tj, dual TMU verze) nemá v single text. turoku ani o frame rozdílný výkon, než 4-4 (single TMU) verze. Podle mě to znamená, že paměť druhé TMU se při single-texturignu vůbec nevyužívá. Ale jestli máš lepší vysvětlení, rád se nechám poučit...

Napsal: stř kvě 04, 2005 12:16 am
od no-X
http://graphics.tomshardware.com/graphi ... oo-23.html

V2 8MB vs 12MB. Sice jsem viděl i jiné testy, kde se výsledky takhle výrazně lišily, ale nějak je nemůžu najít :-( (v předchozích testech na tomshw totiž 8MB i 12MB vycházejí prakticky stejně).

Napsal: stř kvě 04, 2005 12:24 am
od ps47
..tak to vcelku cumim.vzdy som mal dojem ze rozdiel medzi 8MB a 12MB verziou je par framov :shock:

Napsal: stř kvě 04, 2005 12:34 am
od swarm
no-X píše:moje otázka: Mohou být při single-texturingu využity pro textury až 4MB, nebo max. 2MB?
Až 4MB.
no-X píše:Podle mě to znamená, že paměť druhé TMU se při single-texturignu vůbec nevyužívá.
Možná ano, možná ne. Nemám tady glide sdk, takže se nemůžu podívat jak to to API rozhazuje. Já mám za to (zjednodušeně), že se textura nahraje do paměti té jednotky, která je prázdnější. Takže se ta paměť vyplňuje rovnoměrně. Kdyby se při single texturingu nahrávaly textury jenom do paměti první jednotky, tak by se taky potom mohlo stát, že až se tam bude chtít nahrát další textury pro něco s multitexturingem, tak by se to tam nemuselo vejít, protože už by byla paměť jedné jednotky plná, i když by ta druhá byla úplně prázdná (při multitexturingu musí už být ty dvě dané textury každá v paměti jiné TMU). Tady by byl totiž pak problém, že by v podstatě skoro nikdy nešla využít všechna pamět karty.
To, že se to na výkonu neprojevilo je, protože Turok má jenom single texturing a jestli karta tahá textury z první nebo z druhé TMU, tak je to pořád stejně rychlé (ta zbylá se bude stejně flákat).

Napsal: stř kvě 04, 2005 11:52 am
od wizzy
Byla by škoda, kdyby se ta zajímavá diskuze ztratila - navrhuju to tu splitnout a celý OT (z pohledu bazaru :wink: ) přesunout do příslušné sekce, např. Hardware :D

Napsal: stř kvě 04, 2005 12:02 pm
od 3dfx.fun
jj. :wink: Byla by to škoda

/edit by no-X: přesunuto z bazaru