Pardon, sad tek vidim ono "microsoft.com" u lokaciji :)
U svakom slučaju voleo bih da čujem detalje o tom wrapperu iz prve ruke, pošto rezultati baš nisu sjajni. Kako to da Quake 2 u soft modu bolje radi pod wineom nego pod Vistom (čak i u compatibility modu za starije Windowse)?
Dakle, o cemu se radi:
[pojednostavljena verzija]
Vista podrzava dva drajver modela - XPDM i WDDM. XPDM podrzava hardver do i ukljucujuci DX9-level video kartica. WDDM je napravljen prvenstveno zbog DX10 hardvera, ali podrzava i DX9 hardver.
Dakle, imamo tri moguca scenarija:
1) DX9 i slabije kartice na XPDMu
2) DX9 na WDDMu
3) DX10 na WDDMu
Scenario 2 je izvor zabune. Naime, DX9 na WDDMu podrzava 'klasican' rezim, koji je namenjen da radi kao i DX9 na XPDMu (dakle kao i DX9 na XPu). U tom klasicnom rezimu, specijalne mogucnosti WDDM drajvera se gase da bi igre radile isto kao i uvek.
Te promene se uglavnom svode na resource management deo sistema, i ne uticu na 'obicne' graficke pozive. Dakle, svaki DrawPrimitive poziv je i dalje DrawPrimitive, nema nikakve 'emulacije'.
Ono sto jeste razlicito je, na primer, cuvena DEVICE_LOST poruka koje su aplikacije / igre morale da postuju (ovo je jedan od razloga zasto su stare igre ponekad pucale kada neko uradi ALT-TAB). DEVICE_LOST je deo XPDMa, i igre su navikle da ga dobiju u odredjenim slucajevima. Pod WDDMu, DEVICE_LOST scenario vise nema smisla, ali ce ta poruka biti prosledjena DX9 'klasicnoj' aplikaciji da bi se zadrzala kompatibilnost.
Da li je DEVICE_LOST primer emulacije? Jeste, naravno. Da li je to relevanto za performanse programa i igara? Ne bas, jer se DEVICE_LOST dobija kada neko minimizuje prozor, ALT-TABuje i slicno. To stvarno nema veze sa 'wrappovanjem DX9 na DX10' (sto uzgred ni nema smisla, jer prakticno niko ni nema DX10 hardver).
A sada apropos Quake 2.
Quake 2 je naravno OpenGL program, tako da tu imamo drugi set problema. Quake 2 u softverskom rezimu je najverovatnije sporiji na Visti nego na XPu (nisam licno probao, ne znam, ali ne zvuci kao bitan customer scenario).
Zbog cega bi bio sporiji na Visti? Razlog je jednostavan. U Visti je GPU (video hardver) po prvi put virtualizovan. U XPu je GPU bio ekskluzivan. Ovo je logican nastavak progresije virtualizacije: prvo smo imali virtualizaciju pristupa CPU - multitasking (ovo ne treba mesati sa virtualizacijom samog CPUa), onda smo imali virtualizaciju memorije, i sada imamo virtualizaciju GPUa.
Da li to znaci da ce graficki programi na Visti biti sporiji nego na XPu? Ne - nov softver koji koristi mogucnosti Viste ce naravno biti brzi, a vecina starog softvera ce biti u 5-10% performansi (izuzetaka uvek ima). Sa druge strane, dobijamo pozamasne prednosti od virtualizacije, kao sto smo to ranije dobili kada smo virtualizovali pristup CPUu i memoriji. Ovo je procenjeno kao bolje za korisnike i industriju nego ekskluzivan pristup GPUu.
Eto, pokusao sam da budem koncizan i da mnogo ne smaram :)