A Windows Vista grafikus-, multimédia- és driver alrendszere Czigléczky Gábor cziglecz@njszki.hu informatikatanár Neumann János Számítástechnikai SZKI
Miről lesz szó? Grafikus alrendszer Driver alrendszer Aero és Desktop Window Manager Windows Vista Display Driver Model DirectX 9L és 10, Windows Presentation Foundation A Windows Vista hardverkövetelményei Driver alrendszer A User Mode Driver Framework áttekintése Multimédia és videó alrendszer DirectX Video Acceleration 2.0 High Definition Audio és keverőpult
Multimédia és videó alrendszer Grafikus alrendszer Aero és Desktop Window Manager Windows Vista Display Driver Model DirectX 9L és 10, Windows Presentation Foundation A Windows Vista hardverkövetelményei Driver alrendszer A User Mode Driver Framework áttekintése Multimédia és videó alrendszer DirectX Video Acceleration 2.0 High Definition Audio és keverőpult
Windows Aero Mi is az Aero? A Windows Vista új grafikus felületének neve Authentic, Energetic, Reflective and Open (hiteles, energikus, tükröződő, és nyílt) Három rétege: Aero Basic Aero Standard Aero Glass
Az Aero rétegei Windows Aero Standard Basic Windows Classic Ultimate Enterprise Business Home Premium Követelmény Fejlesztési kódnév Home Basic Starter Windows Aero Átlátszósági effektek Live preview Windows Flip Windows Flip 3D Animált ablakok WDDM grafikus kártya Aero Glass Standard Desktop Composition (simább újrarajzolás) Megnövelt stabilitás Szebb külső WDDM grafikus kártya Aero Express Basic Újratervezett Start Menü Új Intéző-ablakok Új ikonok Előnézet panel Új varázslók, dialógusok Bármilyen grafikus kártya Aero To Go Bármilyen grafikus kártya Windows Classic Windows 2000 felület
Windows Aero Aero Basic A gyengébb teljesítményű gépeken fut (szoftveres) Ezt látjuk akkor is, ha olyan alkalmazást futtatunk, amelyik nem Aero Glass-kompatibilis
Windows Aero Aero Standard Csak Vista Home Basic rendszeren érhető el Hardveres támogatást (WDDM) igényel Külsőre úgy néz ki, mint az Aero Glass, de hiányoznak a grafikus effektek (alacsonyabb igény)
Windows Aero Aero Glass A Windows Vista új, hardveres gyorsítással támogatott grafikus felülete Transzparens ablakkeret: Vizuális váltás az ablakok között (Windows Flip):
Windows Aero Aero Glass Élő miniatűr a Tálcán (Live Preview): Vizuális váltás az ablakok között, de 3D-ben (Windows Flip3D)
Windows Aero Aero Glass Flip3D:
Desktop Window Manager Windows Aero Aero Glass Mi teszi lehetővé mindezt? Pusztán csak vizuális újításról van szó? Nem, a háttérben az új ablakkezelő működik Desktop Window Manager
Desktop Window Manager Miért van rá szükség? Gyakori probléma a korábbi verziókban: az ablakok nem tudták időben újrarajzolni magukat
Desktop Window Manager Megoldás: WPF alkalmazás D3D alkalmazás GDI alkalmazás felület felület felület Desktop Window Manager
Desktop Window Manager A DWM legfontosabb jellemzői: Az ablakok tartalma egy képernyőtől független pufferbe kerül Ez a folyamat a desktop composition A kirajzoláshoz a DirectX 9 shadereit használja Minden ablak valójában egy textúra! Ez teszi lehetővé az effektek használatát is Nagyfelbontású megjelenítők támogatása (átméretezés) Ez van a Live Preview, Flip és Flip3D mögött is
Desktop Window Manager A DWM háttere: Teljesen új driver alrendszerre volt szükség A hardveres gyorsítás miatt nem túl processzorigényes DE: a grafikus kártyának is támogatnia kell! Windows Vista Display Driver Model (WDDM)
Multimédia és videó alrendszer Grafikus alrendszer Aero és Desktop Window Manager Windows Vista Display Driver Model DirectX 9L és 10, Windows Presentation Foundation A Windows Vista hardverkövetelményei Driver alrendszer A User Mode Driver Framework áttekintése Multimédia és videó alrendszer DirectX Video Acceleration 2.0 High Definition Audio és keverőpult
Windows Display Driver Model Problémák a régebbi rendszerrel: Egyszerre csak egy kliens (pl. XP-n) GDI alkalmazás, videólejátszás, teljes képernyős játékok, CAD/CAM alkalmazások, stb. Eközben a GPU-k folyamatosan fejlődtek, programozhatóvá váltak A mindennapi alkalmazások során a GPU ereje „parlagon hever”, nem használjuk ki
Windows Display Driver Model Mire van szüksége a DWM-nek? „Végtelen sok memóriára” Minden Windows ablak egy textúra Rengeteg Windows ablak lehet nyitva egyszerre Szabjuk meg, hogy mennyi lehet? A DWM-nek együtt kell működnie az összes DirectX-alkalmazással Videólejátszás, WPF-alkalmazások Vistában még a Passziánsz is DirectX-alkalmazás!
Windows Display Driver Model A három legfontosabb újítás a WDDM-ben Virtuális memóriakezelés a videómemóriában Többfeladatos működés (preemptív multitaszk) A grafikus kártya driverének nagy része user módba kerül át a kernel mód helyett (később, a UMDF-nél) Régi XP-s grafikus kártya driver használata esetén a WDDM újdonságai és az Aero Glass sem lesz elérhető
Windows Display Driver Model Virtuális memóriakezelés a videómemóriában Hasonlóképpen működik, mint a rendszermemória esetén Ha elfogy a videómemória, a szokásos lapcserélési algoritmussal egy lap kikerül a rendszermemóriába Ha mindkettő elfogy, akkor a rendszer a merevlemezhez fordul (szélsőséges eset) A DWM szabadon tud magának „allokálni” memóriát
Windows Display Driver Model Többfeladatos működés (multitaszk) Eddig nem volt lehetőség a GPU folyamatának megszakítására Lehetővé teszi több GPU-igényes program egyidejű futását (context switching) Kétfajta mód: Basic Scheduling Advanced Scheduling
Windows Display Driver Model Basic Scheduling Egy shader feldolgozásának befejezéséig nincsen lehetőség a megszakításra DirectX 9Ex szükséges hozzá (bővebben később) Advanced Scheduling A shader feldolgozása közben is lehetséges a megszakítás DirectX 10 kell hozzá (bővebben később) WDDM verziók: 1.0, 2.0, 2.1
Windows Display Driver Model WDDM 1.0 A jelenlegi GPU-kkal együttműködik Alapszintű ütemezés (Basic Scheduling) Az aktuális buffer tartalmát fel kell dolgozni context switch előtt A Windows Vistában ez elérhető Erőforrás-virtualizáció: a régebbi API-k számára (DX 3..9) a teljes kihasználáshoz DirectX9Ex és DirectX 10 kell
Windows Display Driver Model WDDM 2.0 Az újgenerációs (multitaszk-támogatású) GPU-k számára Parancs (háromszög) utáni megszakítást támogat A GPU-nak várakoznia kell laphiba esetén A multitaszk jobb, mint a WDDM 1.0 esetén A kliensnek még mindig együtt kell tudni működni
Windows Display Driver Model WDDM 2.1 Mindent tud, amit a WDDM 2.0 Context switching a legalacsonyabb szinten is (pixelek szintjén) Minden processznek külön lapozótábla Így laphiba esetén már nem kell várakozni Valóban preemptív többfeladatosság A legnagyobb rugalmasságot biztosítja a GPU-nak
Multimédia és videó alrendszer Grafikus alrendszer Aero és Desktop Window Manager Windows Vista Display Driver Model DirectX 9L és 10, Windows Presentation Foundation A Windows Vista hardverkövetelményei Driver alrendszer A User Mode Driver Framework áttekintése Multimédia és videó alrendszer DirectX Video Acceleration 2.0 High Definition Audio és keverőpult
DirectX és WDDM Direct3D 9Ex A Direct3D 9 továbbfejlesztése (korábbi nevén: DirectX 9L) Ez a Direct3D 9 „WDDM-kompatibilis verziója” A Windows Vistában lesz benne, a DWM használja Képes együttműködni a WDDM ütemezőjével és memóriakezelőjével Igyekszik kiküszöbölni a „device lost” helyzeteket Nem lesz elérhető Windows XP-re!
DirectX és WDDM DirectX-támogatás a Vistán A DirectX 10 DirectX 9 és régebbiek támogatása (legacy support) DirectX 9Ex a WDDM-hez DirectX 10 A DirectX 10 DirectX új generációja Windows Vistára Teljes mértékben illeszkedik a WDDM 2.0-hoz Emiatt nem készül el Windows XP-re Teljesen újratervezett, nem visszafelé kompatibilis
DirectX 10 Legfontosabb újítások: Shader Model 4.0 támogatás Nincsenek „capability bit”-ek minden DX10-es kártyának ugyanazokat a funkciókat kell támogatnia egységes programozási felületet nyújt mostantól tudásban nem, csak képminőségben és sebességben térhetnek el az egyes kártyák Várakozások (overhead) kiküszöbölése Geometriai árnyalók bevezetése
DirectX 10 Pixel Shader: Vertex Shader: Geometry Shader: Képpontokkal foglalkozik Vertex Shader: Vertexekkel foglalkozik Geometry Shader: Egyszerre foglalkozik az egész háromszöggel Képes részekre bontani az objektumokat Nagyobb hatékonyság, gyorsabb feldolgozás Geometry Shader
DirectX 10.1 (a jövő) A DirectX 10 következő továbbfejlesztése Kiegészíti a DirectX 10-et Újdonságok: WDDM 2.1 támogatás alacsonyabb CPU-terhelés, teljes multitaszk A pipeline és a shaderek további fejlesztése Továbbfejlesztett élsimítás (anti-aliasing) Nagyobb teljesítmény többmagos rendszereken
Windows Presentation Foundation Korábbi kódnevén: Avalon Egységes programozói felület Az alkalmazások grafikus felületének fejlesztéséhez A felhasználói felület és a programkód elválasztása XML-alapú leírónyelvet támogat Része a .NET Framework 3.0-nak (korábban WinFX) A WPF-alkalmazások Windows XP-n és Windows Server 2003 rendszereken is futtathatóak Kivéve, amelyek a Vista szolgáltatásait kihasználják
Windows Presentation Foundation Vistában a WPF DirectX-et használ A felhasználói felület elemei vektorgrafikák (lásd a shell átméretezhető ikonjait) Videólejátszáshoz (DXVA 2.0, lásd később) ClearType hardveres gyorsítása Akár 3D grafika, videó a felhasználói felületen! Különálló és webes alkalmazások XAML: eXtensible Application Markup Language Alkalmazásfejlesztés Kiegészítő segítségével a Visual Studio 2005-höz Felhasználói felület tervezése az Expression Blend alkalmazással
Windows Presentation Foundation Expression Blend Beta 1 Felhasználói felületek fejlesztése WPF alá Korábbi neve: Interactive Designer A Beta 1 letölthető (180-napos próbaverzió) Rendszerkövetelmény: Windows XP SP2 + .NET Framework 3.0 vagy Windows Vista Visual Studio 2005 Express (Basic vagy C# nyelven) Felület megtervezése a Blend-ben, kód hozzá Visual Studio-ban Grafikai tervezés: Expression Design Webes tervezés: Expression Web (megjelent) Ezek az alkalmazások a 2007 nyarán megjelenő Expression Studio programcsomag részét képezik
Multimédia és videó alrendszer Grafikus alrendszer Aero és Desktop Window Manager Windows Vista Display Driver Model DirectX 9L és 10, Windows Presentation Foundation A Windows Vista hardverkövetelményei Driver alrendszer A User Mode Driver Framework áttekintése Multimédia és videó alrendszer DirectX Video Acceleration 2.0 High Definition Audio és keverőpult
Milyen hardver kell mindehhez? Minimálisan támogatott Minimálisan ajánlott Home Basic A „nagyobb kiadásokhoz” CPU 800MHz-es x86 vagy x64 processzor 1GHz-es vagy nagyobb x86 vagy x64 processzor Rendszermemória 512MB 1GB GPU SVGA (800x600) DX9-es Aero kompatibilis (WDDM) Grafikus memória 32MB 128MB HDD 20GB 40GB HDD (szabad hely) 15GB Optikai meghajtó CD-ROM DVD-ROM Hálózat Internet-hozzáférés Hang Hangkimenet
Milyen hardver kell mindehhez? Memória Legalább 512 Mbyte szükséges Integrált grafika esetén: 512 Mbyte-ból 64 Mbyte használható grafikus memóriának 1 Gbyte-ból legfeljebb 256 Mbyte használható Aero használatához 512 Mbyte memória kell a rendszernek Tehát integrált grafika esetén 1 Gbyte memória a minimum
Milyen hardver kell mindehhez? Az Aero igényei Legalább WDDM 1.0 kompatibilis driver (enélkül nincsen Aero Glass) Az ATi és az nVidia rendelkeznek béta-állapotú WDDM-kompatibilis driverekkel DirectX9-es grafikus kártya Pixel Shader 2.0 hardveres támogatással 32 bites színmélység támogatása Legalább 1600 MB/s grafikus memóriasávszélesség
Milyen hardver kell mindehhez? Az Aero igényei – grafikus memória Egy monitor vagy laptop esetén 1280*1024-nél alacsonyabb felbontás: 64 Mbyte 1920*1200-as felbontásig: 128 Mbyte felette: 256 Mbyte Két monitor esetén 128 Mbyte, ha mindkettő felbontása 1280*1024 alatt van 256 Mbyte a nagyobb felbontásokhoz
Milyen hardver kell mindehhez? Windows System Assessment Tool (WinSAT) A telepítés végén fut le, megvizsgálja a gép képességeit Ebből áll elő a Windows Experience Index érték Az eredmények alapján a DWM be- vagy kikapcsolja az Aero Glass felületet Windows Vista Upgrade Advisor Windows XP és Vista rendszerekhez Megvizsgálja a gépet, alkalmas-e a Vista futtatására
Multimédia és videó alrendszer Grafikus alrendszer Aero és Desktop Window Manager Windows Vista Display Driver Model DirectX 9L és 10, Windows Presentation Foundation A Windows Vista hardverkövetelményei Driver alrendszer A User Mode Driver Framework áttekintése Multimédia és videó alrendszer DirectX Video Acceleration 2.0 High Definition Audio és keverőpult
Miért NE kernel mód? A kernel módú driverek gondokat okozhatnak Ez adatvesztéshez, összeomláshoz vezethet A kernel módú driverek veszélyesek A rosszindulatú driver adatokhoz juthat, kihasználhatja a biztonsági réseket, „kaput nyithat” a külső támadásokhoz Kernel módú drivert írni nehéz A kernel-módú környezet nagyon komplex
Miért user mód? A user módú driverek nem omlasztják össze a rendszert, nem okoznak adatvesztést A user módú driver hatásköre korlátozott úgy futnak, mint a szolgáltatások (service) csak azokkal az adatokkal dolgozhatnak, amelyek őket érintik Driverek user módban: nyomtatók, hangkártyák, képeszközök
Windows Driver Foundation (WDF) A WDF a Windows Driver Model (WDM) utódja Kernel Mode Driver Framework (KDMF) közvetlen hardvereléréshez (DMA, megszakítások) hozzáférés a kernel adataihoz User Mode Driver Framework (UDMF) buszok (USB, Firewire) szoftveres driverek (filterek, virtuális portok) Windows XP alatt is (WMP11-gyel települ) Hibrid módú driverek (lásd grafikus kártya) Aránylag könnyű átírni a jelenlegi WDM-drivereket UDMF-re
Az ATi driver felépítése XP alatt Csak az OpenGL driver van user módban Minden kernel módban fut Hiba a driverben instabil rendszer!
Az ATi driver felépítése Vista alatt Minden user módban fut Csak a hardvert közvetlenül elérő rész fut kernel módban Megbízhatóbb, stabilabb rendszer Új elem: Microsoft DXVA
Multimédia és videó alrendszer Grafikus alrendszer Aero és Desktop Window Manager Windows Vista Display Driver Model DirectX 9L és 10, Windows Presentation Foundation A Windows Vista hardverkövetelményei Driver alrendszer A User Mode Driver Framework áttekintése Multimédia és videó alrendszer DirectX Video Acceleration 2.0 High Definition Audio és keverőpult
DirectX Video Acceleration (DXVA) A DXVA célja: Hardveres gyorsítást biztosít a videódekódoláshoz DXVA 1.0: Alkalmazások Szoftvergyártók Hardvergyártók Microsoft Dekódolás Renderelés DXVA 1.0 GPU
DirectX Video Acceleration (DXVA) Alkalmazások Szoftvergyártók Hardvergyártók Microsoft DXVA 2.0 DXVA 1.0 interfész Rögzítés Dekódolás Feldolgozás Jövőbeli feladat GPU
DirectX Video Acceleration (DXVA) Moduláris felépítés Elkülönül a rendereléstől Külön API a rögzítéshez dekódoláshoz feldolgozáshoz Az alkalmazások közvetlenül kommunikálhatnak a DXVA 2.0 réteggel
DirectX Video Acceleration (DXVA) DXVA 2.0 dekóder profilok: MPEG-1, MPEG-2, H.261, H.263, H.264 WMV 8, WMV 9, VC-1 DXVA 2.0 videórögzítés Áthárítja a munkát a GPU-ra a WDDM-nek köszönhetően Drámaian csökkentett processzorhasználat
Multimédia és videó alrendszer Grafikus alrendszer Aero és Desktop Window Manager Windows Vista Display Driver Model DirectX 9L és 10, Windows Presentation Foundation A Windows Vista hardverkövetelményei Driver alrendszer A User Mode Driver Framework áttekintése Multimédia és videó alrendszer DirectX Video Acceleration 2.0 High Definition Audio és keverőpult
Universal Audio Architecture (UAA) Cél az egységes driver architektúra a hangeszközökhöz Három csatolófelületen: USB IEEE 1394 (FireWire) Intel High Definition Audio (PCI, PCI Express) Natív támogatás a Vistában (külön driver nélkül) Enélkül egy eszköz már nem kapja meg a Vista Logo-t Az AC ’97 már „nem szívesen látott” A WDM Audio kiváltására készült
Keverőpult XP-ben… Szétszórt opciók, külön párbeszédablakok Eszközönként egy hangerőszabályzó Rugalmatlan…
… és Vistában Egységesebb, elegánsabb kinézet Összefogott opciók Hangerőszabályzó alkalmazásonként UAA esetén jelzi, ha valamelyik csatlakozót (pl. mikrofon) kihúzták…
Összefoglalás Grafikus alrendszer Driver alrendszer Az új grafikus felület mögött vadonatúj grafikus motor WDDM, Desktop Window Manager, Windows Presentation Foundation Driver alrendszer WDM helyett: UDMF, kernel mód helyett user mód A grafikus meghajtó nagy része immár user módban Multimédia és videó alrendszer DirectX Video Acceleration 2.0 HDA támogatás, megújult a keverőpult
További információk Microsoft Windows Vista: http://www.microsoft.com/windowsvista/ Microsoft Expression Studio: http://www.microsoft.com/products/expression/en/default.mspx Greg Schechter’s Blog: http://blogs.msdn.com/greg_schechter/ Universal Audio Architecture: http://www.microsoft.atat.at/whdc/device/audio/uaa.mspx Windows Presentation Foundation Community: http://wpf.netfx3.com/