Portál AbcLinuxu, 19. března 2024 06:30

Zpravodaj o Víně – 2. 5. 2011

19. 5. 2011 | Luboš Doležel
Články - Zpravodaj o Víně – 2. 5. 2011  

Aktuální verze Wine: 1.3.19. Výsledky ladění výkonu Direct3D. Dopad skrývání symbolů na výkon. Umístění složek na Windows 7.

Obsah

Aktuální verze Wine

link

Wine 1.3.19 vyšlo 29. dubna 2011 s následujícími novinkami:

Výsledky ladění výkonu Direct3D

link

Snad každý, kdo kdy hrál nějakou Direct3D hru pod Wine potvrdí, že výkon nebyl úplně srovnatelný s během pod Windows. A pokud byl, typicky se ukázalo, že je tomu tak jen díky tomu, že Wine nepodporuje některou grafickou vymoženost, tu tedy nevykresluje a proto má navrch.

Stefan Dösinger se s takovou věcí nehodlá smířit. Začal proto hledat místa, která jsou hlavním zdrojem špatného výkonu.

Strávil jsem dnes několik hodin laděním výkonu wined3d. Nenašel jsem žádný zázračný lék na pomalost, jen jsem získal nějaká trochu použitelná data.

Nejprve jsem napsal škaredý patch, kterým se má zabránit redundantním aplikacím FBO. To mi dalo droboulinký nárůst výkonu, více zde.

Hlavním předmětem vyšetřování byly redundantní aplikace shaderů. Smyslem bylo zjistit, kolik z našich volání glBindProgramARB re-binduje ten samý program a kolik nás tato volání stojí. V závislosti na hře je 20 % až 90 % volání redundantních. Připojuji svůj hack pro ladění, aby to ostatní mohli ozkoušet na svých aplikacích. Pro testování jsem použil ARB shadery, protože ty mohou aplikovat vertexové a fragmentové shadery odděleně.

Toto vede ke dvěma otázkám: a) Kolik výkonu nás toto stojí b) Proč se to děje

Co se dopadu na výkon týče: V mém testovacím programu hack na odstranění redundantních volání zlepšil výkon znatelně, z přibližně 101 fps na 157 fps. Největší částí jsou volání GL. Bez nich, ale se zbývající logikou shaderů, dostanu 144 fps.

Toto bohužel nevede k žádným výkonnostním zlepšením v reálných aplikacích. Snažil jsem se vyfiltrovat redundantní volání tím nejsnazším způsobem: sledovat aktuální hodnotu pro každý wined3d_context a ověřovat ji před zavoláním glBindProgramARB. Tohle v testovacím programu udělalo 144 fps, ale ve všech ostatních programech žádné měřitelné zlepšení nebylo (zkoušel jsem StarCraft 2, HL2, Team Fortress 2, World in Conflict a pár dalších).

Vzhledem k množství redundantních volání a jejich dopadu na výkon v testovacím programu jsem čekal alespoň nějaké zlepšení. Určitě ne 50% (testovací program nedělá ve vykreslovacím cyklu žádné změny v shaderech), ale aspoň tak 2 až 3 %. Zatím nemám vysvětlení, proč jsem nic takového nezaznamenal.

Dále dlouze diskutoval, co všechno by mohlo být příčinou. Za chvíli se ozval ještě jednou s dalšími výsledky, tentokrát na jiném programu:

Toto jsou výsledky z Windows 7: drawprim_gl ~1154 fps, drawprim_d3d ~1160 fps. Pod Wine dává D3D verze 165.67fps fps. Linuxová nativní verze dává 1791 fps. GL verze pro Windows dává asi tak 600 fps (OPRAVIT!). Výkon GL mě až tak neděsí, jde hlavně o režii spojenou se zamykáním. O tom později.

[...] Plán do budoucna je pořád stejný: Napsat více takových testů (hlavně testů, které zkouší nevykreslovací věci jako načítání prostředků), vylepšit jejich výsledek a doufat, že to reálným aplikacím prospěje. [...]

Na závěr e-mailu připojil zajímavou tabulku, kde postupně identifikoval, co způsobuje nízký výkon. Detailně popsal každou položku, my si popíšeme jen ty nejzásadnější.

0Původní výkon 165.67fps
1 Odstranění device_preload_textures 187.08fps (viz 18, vrátil jsem to zpět)
2 WINEDEBUG=-all 178.43fps
3 údržba umístění rt 186.29fps
4 údržba umístění ds 200.93fps
5 redundantní kontroly fbo 254.99fps
6 validace FBO 293.61fps
7 hloubka volání mutexů 294.08fps (v podstatě beze změny, vráceno zpět)
8 kontrola SetPrimitiveType 297.80fps
9 CFLAGS="-g -O2" 297.80fps (nemělo nic změnit)
10 CFLAGS="-g -O3" 308.05fps
11 CFLAGS="-g -O3 -fomit-fp" 337.11fps (ano, vím, že je to -fomit-frame-pointer)
12 odstranění ladících zpráv 341.77fps (hmm, tohle dokonce jednou běželo pomaleji)
13 žádné -fPIC 344.21fps (ok, nic moc změna)
14 findTexUnitMap hack 390.15fps
15 žádný mutex wined3d 449.40fps (nerealistické)
16 žádné zamykání u gl 848.77fps (Ježíšek existuje!)
17 počítání hloubky kontextu 887.41fps
18 odstranění device_preload_textures 973.35fps (podívejme se, kolik to udělá bez ostatních hacků)
19 vypnout vykreslování do fbo 919.39fps (zajímavé, vráceno zpět)
20 vypnout glsl 973.35fps (poznámka: shader a konstanty jsou statické, vráceno zpět)
21 odstranit varování na point sprites 976.68fps (na úrovni statistické odchylky)

K bodům 15 a 16 (největší skoky ve výkonu) napsal:

Varuji proti přehnanému optimismu. V dohledné době se nebudeme schopni zbavit zamykání. Možná lze zlepšit výkon EnterCriticalSection / LeaveCriticalSection. Částí problému je režie spojená s voláním, ale myslím si, že největším problémem jsou atomické přičítání a odečítání v RtlEnterCriticalSection / RtlLeaveCriticalSection.

Původní výkon: 178 fps. Atomické operace nahrazené normálním inc/dec: 244 fps. Po odstranění zámku: 293 fps. (To jen abyste věděli, kde to tráví kolik času.)

Zajímavý je také bod 18:

Je zajímavé, kolik nám to dá bez ostatních optimalizací. Moje aplikace nepoužívá žádné textury, takže jde jen o režii spojenou s voláním a cyklením přes fragmentové samplery.

Emanuela Orianiho zaujal právě problém se zamykáním:

Co si myslíš o použití inline spinlocku (možná v assembleru) pro implementaci zámků? Je jasné, že by takový spinlock znamenal odlišný kód pro různé kompilátory/architektury, ale nebylo by to nejlepší řešení? Jen pro informaci, zkusil jsem zakomentovat zámky GL u StarCraftu 2, abych viděl, jak rychle to pojede, a hned to spadlo.

Stefan odepsal, že není velkým příznivcem ručně psaných optimalizací:

Myslím si, že optimalizace volání zámku je slibnější cesta. Nemůžeme jen tak odstranit volání ENTER_GL/LEAVE_GL, jak jsi zjistil u SC2. Možná dokážeme omezit počet těchto volání přesunutím volání opengl blíže k sobě.

Pak je tu zámek wined3d, který je něco jako big kernel lock. I zde je nějaký prostor pro zlepšení, pokud změníme pravidlo „musíte volat wined3d pod zámkem“. Nicméně tento zámek oproti zámku X11 vnímám jako menší problém.

Emanuele to přesto s assemblerem přesto zkusil, ale v SC2 mu to výkon nepřidalo. Dále rozebírali i další možná problémová místa (pokud nejsou všechna vlákna v SC2 svázána s jedním jádrem procesoru, výkon klesne o 40 %). Na závěr jedna důležitá Stefanova poznámka:

Nesouhlasím s přístupem „Všechno je dovoleno, jen když to někomu někde zlepší výkon“.

Dopad skrývání symbolů na výkon

link

U výkonu ale ještě zůstaneme. Tentokrát pozornost upoutal patch, který k funkcím z DInput přidával __attribute__((__visibility__("hidden"))). Vitaliy Margolen:

Co má tohle přesně dělat? Tohle je v hlavičkovém souboru, všechno v něm je interní pro DInput. Na co tam potřebujeme extra deklarace?

Marcus Meissner vysvětlil, jakou úsporu to přináší:

Pokud nejsou označené jako skryté (hidden), -fPIC vytvoří pro tyto symboly relokace, i když jsou pro dynamickou knihovnu interní (kompilátor neví, co má při sestavování vyexportovat). S atributem hidden se toto promění v relativní volání nebo jednodušší relokace.

Ostatní si vyžádali nějaké informace o výkonnostním přínosu. Stefan Dösinger se připomenul s tím, že odstranění -fPIC přináší výkonnostní zlepšení o 2 až 3 procenta. Vyjádřil ale pochybnosti o atributu hidden:

Nejsem si jist, jak velký efekt bude mít označení několika funkcí jako skryté. V kódu d3d je většina věcí už teď statická nebo skrytá, a přesto nepoužívání -fPIC na wined3d samotném zlepšuje výkon.

Marcus pak uznal, že tento patch moc výkonnostních přilepšení nepřinese:

Mám za to, že opravy, které dělám, nebudou mít velký výkonnostní přínos. Nejsou ani na žádných výkonnostně kritických místech, jde v podstatě jen o pročištění.

Umístění složek na Windows 7

link

Snad každá verze Windows přesune, přejmenuje nebo reorganizuje některé systémové složky. Windows 7 nejsou výjimkou. A co na to Wine? Dan Kegel:

Windows 7 trochu změnil složky v c:/users/$USERNAME. My Documents je teď jen odkaz na novou složku Documents. Application Data je jen odkaz na novou složku AppData/Roaming. Local Settings je jen odkaz na AppData/Local.

Jaký tohle bude mít dopad na Wine? Dobře vychované aplikace, které používají CSIDL_PERSONAL, aby se dostaly do „My Documents“ nebo „Documents“ budou fungovat nadále, ale uživatelé nebo zlobivé aplikace mohou jednoho dne začít očekávat krátké názvy adresářů. (Stejně jsem ty mezery vždycky nenáviděl.)

Jerome Leclanche se vyjádřil k tématu zlobivých aplikací:

Mám za to, že se najdou zlobivé aplikace na obou stranách, ale tyto by byly zcela jistě rozbité; fungovaly by vůbec na neanglických Windows?

Kornél Pál pomohl blíže objasnit situaci:

Všimněte si, že tyto změny byly zavedeny ve Windows Vista, takže žádné aktivně udržované aplikace by s tím neměly mít problém.

Navíc podotýkám, že lokalizované názvy složek odkazují na fyzickou anglicky pojmenovanou složku, takže adresářová struktura je mezi variacemi Windows konzistentnější.

Staré aplikace jsou zase trochu jiná situace a hacky pro kompatibilitu musejí být tak či tak použity. Změna názvů shellových složek a vytvoření odkazů ze starých názvů je pravděpodobně funkční řešení, protože to je to, co bylo zavedeno ve Windows Vista a ve Windows 7 to tak zůstalo.

Změny v databázi aplikací

Změny od správců programů

ProgramPůvodní stav/verzeNový stav/verzeZměna
Battlefield 1942 1.6x Silver (1.2-rc4) Gold (1.3.18) +1
TREPCAD 3.4.0 Silver (1.2) Bronze (1.3.19) -1
ZSNES 1.51 Gold (1.2) Platinum (1.3.19) +1
Audiosurf Retail Bronze (1.1.43) Gold (1.3.19) +2
IL-2 Sturmovik Series IL-2 Sturmovik 1946 (4.09m &... Gold (1.2.3) Platinum (1.3.18) +1
nullDC 1.0.x Gold (1.2.1) Silver (1.3.19) -1
Audiosurf 2010-20-4 Steam Silver (1.3.14) Gold (1.3.19) +1
Touhou 6 ~ Embodiment of Scarlet Devil 1.02 Gold (1.1.25) Silver (1.3.17) -1
Quicken 2008 Deluxe Silver (1.1.26) Gold (1.3.15) +1
phase5 5.6xx Garbage (1.1.27) Platinum (1.3.18) +4
ePSXe 1.7.0 Bronze (1.2-rc7) Silver (1.3.19) +1
FCE Ultra 2.x Silver (1.1.25) Platinum (1.3.19) +2
FreeLancer 1.x Gold (1.0.1) Silver (1.3.14) -1
Yahoo! Messenger 11.x Bronze (1.3.14) Silver (1.3.18) +1
Black & White 1.0 Garbage (1.0.1) Silver (1.3.19) +2
Black & White 1.100 Gold (1.3.15) Silver (1.3.19) -1
Portal 2 Steam Garbage (1.2.3) Silver (1.3.16) +2
Master of Orion 3 1.25 Silver (1.0.1) Gold (1.3.17) +1
.NET Framework 1.0 Garbage (1.1.38) Gold (1.3.18) +3
Master of Orion 2: Battle at Antares 1.31 Silver (1.2) Bronze (1.3.17) -1
DeSmuME 0.9.x Platinum (1.2) Silver (1.3.19) -2
Touhou Chireiden ~ Subterranean Animism 1.00a Gold (1.1.7) Silver (1.3.17) -1
Furcadia Public Alpha Platinum (1.3.16) Bronze (1.3.18) -3
Football Manager 2010 10.3.0 Gold (1.2-rc4) Platinum (1.3.15) +1
Touhou Youyoumu ~ Perfect Cherry Blossom 1.00b Gold (1.1.32) Platinum (1.3.17) +1
Celková změna +13

Změny od uživatelů

ProgramPůvodní stav/verzeNový stav/verzeZměna
Medieval 2: Total War Stainless Steel Mod Bronze (1.2-rc5) Silver (1.3.18) +1
TrackMania 2.11.26 Nations Forever Garbage (1.3.10) Gold (1.3.18) +3
RealFlight G5 Demo Garbage (1.3.10) Gold (1.3.18) +3
Narbacular Drop 1.4 Gold (1.2-rc2) Silver (1.3.18) -1
King's Bounty: the Legend (new, 2008) 1,7 Platinum (1.3.12) Gold (1.3.18) -1
Dungeon Siege 1.11.1462 Platinum (1.1.37) Silver (1.3.17) -2
Torchlight 1.x Silver (1.2.3) Bronze (1.3.18) -1
Beat Hazard Full (Steam) Gold (1.3.12) Bronze (1.3.19) -2
Icewind Dale II 2.01 Silver (1.2) Gold (1.3.18) +1
Proteus 7.x Silver (1.0.1) Gold (1.2.2) +1
Ares 2.1.x Platinum (1.3.12) Gold (1.3.18) -1
Battlefield 2 1.x Gold (1.3.14) Silver (1.3.19) -1
3D Pinball - Space Cadet comes with win2k Silver (1.3.16) Platinum (1.3.18) +2
Trainz 2006 Gold (1.1.41) Bronze (1.3.18) -2
The Elder Scrolls III: Morrowind Construction Set Bronze (1.1.44) Garbage (1.3.18) -1
NetStorm: Islands at War 10.x Silver (1.1.23) Gold (1.3.19) +1
Rosetta Stone 3.4.5 Gold (1.3.18) Silver (1.3.19) -1
Call of Duty 4: Modern Warfare 1.7 Gold (1.2.2) Silver (1.3.18) -1
Lumines steam Silver (1.3.1) Bronze (1.3.19) -1
Adobe Photoshop 7.0 Platinum (1.2.1) Silver (1.3.18) -2
Crysis 2 Retail Bronze (1.3.17) Gold (1.3.19) +2
X³: Reunion 2.0.0,2 Garbage (1.1.22) Gold (1.2.2) +3
Star Wars: Knights of the Old Republic 1.0 Silver (1.1.44) Gold (1.2.2) +1
Shatter Steam Bronze (1.3.11) Gold (1.3.19) +2
SimCity 4 1.x Bronze (1.3.13) Silver (1.3.17) +1
The Settlers II: 10th Anniversary 1.x Platinum (1.2) Gold (1.3.18) -1
StarCraft II Retail Gold (1.3.17) Platinum (1.3.18) +1
Championship Manager: Season 01/02 Retail CD Platinum (1.1.7) Silver (1.2.3) -2
Age of Mythology 1.10 Gold (1.1.35) Bronze (1.3.17) -2
Star Wars: X-Wing Collector Series 1.0 Bronze (1.1.34) Gold (1.2.2) +2
Adobe Digital Editions 1.7 Silver (1.2) Gold (1.2.2) +1
Age of Mythology The Titans: 1.03 Platinum (1.3.11) Bronze (1.3.17) -3
Rollercoaster Tycoon 2 1.00 Platinum (1.1.43) Gold (1.2.2) -1
eDrawing Viewer 2011 Garbage (1.3.16) Bronze (1.3.19) +1
Galactic Civilizations II: Dread Lords Galactic Ci... Bronze (1.2.2) Gold (1.3.19) +2
Adobe Acrobat 8.0 Garbage (1.2.1) Gold (1.3.19) +3
WinRAR 3.x (32-bit) Platinum (1.2.2) Silver (1.3.18) -2
Aliens Versus Predator 2 1.0.9.6 Gold (1.3.12) Bronze (1.3.18) -2
X-Men: Legends II - Rise of Apocalypse 1.0 Garbage (1.1.20) Gold (1.3.19) +3
Black Prophecy BP_1.0.0_10 US Version Gold (1.3.18) Bronze (1.3.19) -2
VisualBoyAdvance 1.x Gold (1.2-rc5) Bronze (1.3.19) -2
Pro Evolution Soccer 2010 RETAIL 1.0 Bronze (1.2-rc6) Silver (1.3.18) +1
Deadlock: Planetary Conquest 1.31 Silver (1.1.33) Platinum (1.2.2) +2
Xmedia Recode Latest Version Gold (1.1.36) Platinum (1.3.18) +1
Wizard101 Wizard101 Final Live Version Garbage (1.3.13) Gold (1.3.19) +3
Caesar III GoG.com version (1.0.1.0) Gold (1.1.39) Platinum (1.2.2) +1
Braid 1.0 Platinum (1.3.15) Gold (1.3.19) -1
ratDVD 0.7.8 Bronze (1.1.24) Garbage (1.3.17) -1
Might and Magic IX 1.3 Platinum (1.1.25) Bronze (1.2.2) -3
.kkrieger chapter 1 beta Gold (1.2.1) Platinum (1.3.19) +1
FlatOut 2 1.0 Platinum (1.2) Silver (1.3.18) -2
Grand Theft Auto IV Title Update 4 Garbage (1.1.37) Silver (1.3.18) +2
The Void 1.0 Garbage (1.2) Bronze (1.3.15) +1
Lord of the Rings Online Volume III, Book 2 Gold (1.3.10) Platinum (1.3.19) +1
Crysis 2 Crysis 2 Multiplayer Demo Bronze (1.3.15) Silver (1.3.17) +1
Carmageddon 2 1.0 Silver (1.2.2) Platinum (1.3.18) +2
Mega Manager 3.3 Gold (1.2.3) Silver (1.3.18) -1
AIMP2 2.61.583 Silver (1.2.2) Bronze (1.3.18) -1
Macrium Reflect 4.x Bronze (1.1.42) Garbage (1.3.18) -1
Jade Dynasty Vengeance - 201 Gold (1.3.10) Bronze (1.3.18) -2
Need for Speed III: Hot Pursuit Retail Gold (1.0.0) Platinum (1.0.1) +1
Two Worlds 1.7 Bronze (1.3.12) Gold (1.3.18) +2
Warhammer 40,000: Dawn of War DoW: Demo Garbage (1.2) Bronze (1.3.18) +1
Vdownloader 0.77 Platinum (1.1.14) Garbage (1.2.2) -4
Homefront 1.054 Silver (1.3.16) Gold (1.3.19) +1
RootsMagic 4.0.5 Bronze (1.1.29) Garbage (1.3.18) -1
Google SketchUp 8.x Platinum (1.3.17) Silver (1.3.18) -2
Hearts Windows 7 Garbage (1.3.10) Gold (1.3.17) +3
Zombie Driver 1.1.4 Bronze (1.1.43) Gold (1.3.18) +2
World of Warcraft 2.x Platinum (1.1.9) Gold (1.3.18) -1
Fallout: New Vegas 1.x Garbage (1.2.1) Gold (1.2.2) +3
Adobe Photoshop Elements 6.0 Bronze (1.1.10) Gold (1.2.2) +2
Cinema 4D R11 Silver (1.2.2) Gold (1.3.18) +1
Sacred Demo Gold (0.9.58) Silver (1.3.19) -1
Warpath 1.0 Silver (1.1.44) Garbage (1.2.2) -2
Bioshock Steam Version Gold (1.2) Platinum (1.3.17) +1
Age of Empires II The Age of Kings: 2.x Garbage (1.2.1) Bronze (1.2.2) +1
Steam Official Release Silver (1.3.18) Platinum (1.3.19) +2
Tag & Rename 3.5.x Gold (1.0.1) Platinum (1.3.18) +1
Left 4 Dead 2 Left 4 Dead 2 (non-steam) Gold (1.2.3) Platinum (1.3.16) +1
Half-Life 2 Retail (32-bit) Bronze (1.3.17) Platinum (1.3.19) +3
Age of Mythology Gold Silver (1.1.35) Garbage (1.3.14) -2
Tale of a Hero 1.0 Platinum (1.1.43) Gold (1.3.17) -1
Team Fortress 2 Steam Garbage (1.3.12) Platinum (1.3.18) +4
Mozilla Firefox 4.0.xx Platinum (1.2) Gold (1.2.1) -1
Battlefield 2142 Demo Bronze (1.1.16) Silver (1.2.1) +1
Silent Hunter III 1.4b-EMEA Silver (1.1.21) Gold (1.2.2) +1
Might and Magic IX 1.0 Garbage (0.9.59) Bronze (1.2.2) +1
WinSCP 4.2.x Silver (1.3.18) Platinum (1.3.19) +2
Portal 1.0 Platinum (1.3.17) Gold (1.3.18) -1
X-Plane 7.60 Bronze (1.1.4) Platinum (1.3.19) +3
LEGO Chess 1.0 Bronze (1.1.40) Garbage (1.3.19) -1
Word 2007 Bronze (1.2.2) Silver (1.3.18) +1
Lineage 2 Freya High Five Garbage (1.3.14) Bronze (1.3.19) +1
Call of Juarez 2.0 Garbage (1.1.25) Gold (1.3.17) +3
Phantasy Star Universe Ambition of The Illuminus Bronze (1.1.44) Garbage (1.3.18) -1
Burnout Paradise - The Perfect Box 1.001 Silver (1.1.42) Platinum (1.3.19) +2
FIFA 2000 1.0 Bronze (1.1.19) Garbage (1.3.19) -1
Oni 1.0 Gold (1.2.2) Platinum (1.3.19) +1
Sid Meier's Pirates! 1.x Garbage (1.3.11) Silver (1.3.19) +2
League of Legends 1.0.0.x Gold (1.3.18) Silver (1.3.19) -1
Celková změna +31

Seriál Zpravodaj o Víně (dílů: 42)

První díl: Zpravodaj o Víně - 339, poslední díl: Zpravodaj o Víně – 25. 6. 2014.
Předchozí díl: Zpravodaj o Víně – Google Summer of Code 2011
Následující díl: Zpravodaj o Víně – 15. 6. 2011

Další články z této rubriky

Týden na ITBiz: Při virtuálních schůzkách lidé bojují s nudou
Týden na ScienceMag.cz: Očekávaný Weylův polokov prý neexistuje
Týden na ITBiz: 80 % center IT a podnikových služeb chce více šlápnout do automatizace
Týden na ScienceMag.cz: V magických číslech pro počty protonů a neutronů v atomových jádrech začíná být zmatek
Týden na ITBiz: ChatGPT 4 se už blíží splnění Turingova testu

Diskuse k tomuto článku

19.5.2011 09:22 Jirka
Rozbalit Rozbalit vše Regrese
Odpovědět | Sbalit | Link | Blokovat | Admin
Co vlastně tak obvykle způsobuje ty regrese v databázi aplikací?
D.A.Tiger avatar 19.5.2011 22:34 D.A.Tiger | skóre: 8 | Brno
Rozbalit Rozbalit vše Re: Regrese
Podle mě je to dáno několika faktory :

1) Samotnými úpravami Wine - jeho vývojem. Implementace mechanizmů Wine a i samotného API je natolik komplexní, že jakýkoliv zásah může mít vedlejší efekty, které se mohou projevit tak a tam, kde to nikdo nečeká (a jako naschvál se to i v mnoha případech tak stává). Některé lze odhalit hned, některé při testování a jiné odhalí bohužel až sami uživatelé. To je asi jeden z faktorů

2) Dalším takovým faktorem, který to může ovlivnit (a částečně souvisí i s výše napsaným) je to, že nikdo přesně neví jak Windows fungují pod kapotou, což samozřejmě hodně ztěžuje vývoj funkčního API a prostředí pro běh Windowsáckých programů, protože spoustu věcí musí implementátoři vytvářet sami, vedeni jen mlhavými informacemi, které MS vypustil, či osobními zkušenostmi a znalostí tohoto os. Což samozřejmě znamená, že Wine API je prostě "jiné" oproti API Windows.

3) Wine je hodně závislé na systému a jeho nastavení. Někdo sice tvrdí, že to není zas tak horké, ale moje zkušenosti říkají, že hodně záleží na jádře, XServeru a ovladačích grafické karty, a WM pod kterým je spuštěné (nejvíce je to poznat u her). Jinými slovy to že program XYZ.exe poběží na Wine ve verzi 1.2.3 perfektně bez jakýchkoliv chyb, ještě vůbec neznamená, že na Vašem počítači stejný program pod stejnou verzí poběží stejně dobře. Je pochopitelné, že není v silách autorů otestovat všechny aplikace pro Windows ve Wine na všech dostupných jádrech, distrech a platformách na nichž Linux běží...

Ta databáze slouží hlavně pro orientaci, je dobré ji tedy brát trochu s rezervou...
Radost z toho, že někdo objeví něco nového, je omyl starý 6000 let... (Jean Paul) | anthill inside
20.5.2011 23:18 Juraj
Rozbalit Rozbalit vše Re: Regrese
3) Wine je hodně závislé na systému a jeho nastavení.
Plny suhlas. Ja som si pred par rokmi rozchodil internu firemnu aplikaciu pod wine... a nikomu druhemu sa to nepodarilo zopakovat, ani ked si skopirovali cely obsah .wine :)
21.5.2011 21:17 jk
Rozbalit Rozbalit vše Re: Regrese
ad 3) Skusal som viac veci este pred 2 rokmi, takze je to uz mozno zastarale: Ano, ale viditelne (u mna zaznamenane) efekty su graf. drivery a vystup zvuku (PA, ALSA, OSS). Podla mojej skusenosti s najvacsimi vyrobcami: nvidiacky blob >> ati blob > ati opensource > nvidia opensource > vesa. Tzn. co ide s vesou, to ide aj inde. Ovladace mavaju pomerne casto dlhotrvajuce regresie, takze na to sa neda spoliehat; naproti tomu sa da pomerne dobre spolahnut na moje nerovnosti aj medzi roznymi verziami driverov (tzn. nvidia blob zvlada v lubovolne zlej verzii viac ako ostatni v lubovolnej verzii).

S vystupami zvuku je treba miestami spekulovat - nastastie tam nie je tolko volieb, takze sa to da "uhodnut".
D.A.Tiger avatar 22.5.2011 14:48 D.A.Tiger | skóre: 8 | Brno
Rozbalit Rozbalit vše Re: Regrese
Máte asi pravdu, protože i já mám podobné zkušennosti.

Jen drobné doplnění, že VESA je absolutně jednoduchý framebuffer, velmi pomalý a se základními funkcemi bez jakékoliv akcelerace, takže asi proto většinu z toho co lze rozjet s ní pojede i jinde. Zas na druhou stranu oficiální ovladače od nVidie mi toho rozjedou mnohem více a na ... řekněme lepší úrovni. bohužel s tím, že se na to nedá 100%-tně spolehnout :-(

Myslím si, že hodně zla ve Wine nadělá jeho funkce "prostředníka" mezi vnějším rozhraním Linuxového jádra (libc, glibc, atd...) a spouštěnou Windows aplikací. je to jen čistá spekulace, ale domnívám se, že Wine by v této fázi asi hodně prospělo, kdyby se stalo samo přímím vnějším rozhraním jádra (podobně jako např. FUSE) a při implementaci svých mechanizmů a API přímo komunikovala s jádrem. Žel bohu má to i několik velmi bolavých háčků....

Radost z toho, že někdo objeví něco nového, je omyl starý 6000 let... (Jean Paul) | anthill inside

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.