Kilka miesięcy temu Microsoft przedstawił funkcje nowej wersji DirectX 11.1 od strony technicznej. Dziś na blogu Microsoft opisał dokładnie w jaki sposób API DirectX rozbudowano w Windows 8. Za cel wyznaczono sprzętową akcelerację każdego najmniejszego elementu Windows 8. Tak by każda najmniejsza aplikacja korzystała z GPU
Na blogu 'Building Windows 8′ pojawił wpis w którym Microsoft opisał priorytety jakie postawił sobie tworząc nowy podsystem graficzny dla systemu Windows. Jak wiadomo MS chce by aplikacje były znacznie ładniejsze niż we wcześniejszych wersjach Windows niezależnie czy będą to aplikacje 'metro’ czy desktopowe aplikacje stylizowane na 'metro’ takie jak Zune. Jednak ładne aplikacje to znacznie większe wymagania sprzętowe. Aplikacje gdzie w tle jest wielka grafika lub nawet wideo, animowany layout kontrolek itp. To wszystko wymaga mocy obliczeniowej. Mocy która była dostępna dla twórców gier ale trudno było z niej skorzystać przeciętnemu programiście który tworzył prostą aplikację opartą o GUI.
Microsoft projektując Windows 8 zdecydował się więc na pełną akcelerację sprzętową za pomocą GPU całego systemu i każdej aplikacji. Jak wiadomo w Windows XP z karty graficznej mógł korzystać jednocześnie tylko jeden proces. W Viście pojawiła nowy model który pozwalał na współistnienie wielu procesów dzięki modelowi sterowników WDDM. Współpraca ta jednak była bardzo podstawowa ponieważ brakowało API które dostępne było tylko dla Aero. W Windows 7 pojawiło się API DirectCompute które umożliwiło twórcom aplikacji wykorzystanie mocy karty graficznej. Dzięki temu API pojawiło się sporo zaawansowanych programów które za pomocą GPU przykładowo kodowały filmy lub przeprowadzały złożone obliczenia. Użycie API było jednak skomplikowane. W Windows 8 postanowiono sprawę mocno uprościć, tak by każda aplikacja mogła wykorzystać moc karty graficznej – nawet nieświadomie.
Akcelerowane sprzętowo są najdrobniejsze elementy. Od prostego wyświetlania tekstu który odbywa się za pomocą Direct2D, dekodowanie grafik JPG oraz PNG, dekodowanie wideo, rysowanie kształtów 2D. Wprowadzono sprzętową akcelerację efektów 2D o nazwie Direct2D Effects. Pojawiło się specjalne API opracowane do sprzętowej akceleracji grafiki wektorowej czyli tzw. TIR (Target Independent Rasterization). Nawet dekodowanie prostych grafik odbywa się teraz domyślnie przy użyciu funkcji SIMD. Opracowano nowy mechanizm odświeżania tylko fragmentu ekranu tak by karta graficzna mogła odświeżyć tylko ten sektor ekranu który się zmienił a nie całość tzw. ’tile-based rendering’. Zostały także opracowane nowe interfejsy API która mają umożliwiać łatwe łączenie grafiki 2D, 3D, filmów oraz klasycznych kontrolek w jeden spójny sposób. Tak by każda aplikacja mogła wykorzystać moc karty graficznej zarówno w prostych jak i złożonych scenariuszach
Microsoft podał też szczegółowe wyniki testów wydajności pomiędzy Windows 7 a Windows 8 dla akcelerowanych operacji. Na tym samym sprzęcie niektóre operacje wykonują się kilkukrotnie szybciej np. grafika wektorowa. Co chyba nikogo nie dziwi biorąc pod uwagę że pod Windows 7 operację wykonywał CPU a pod Windows 8 pomagała mu GPU. Tak więc wyjaśniło się w jaki sposób MS przyspieszył swój nowy system.
Pełen wpis można jak zwykle znaleźć na blogu 'Building Windows 8′:
Hardware accelerating everything: Windows 8 graphics
Zostaje zaczekać do października. Za 130zł (39 dolarów) aktualizacja dowolnej wersji Widows XP, Vista, Win7 na znacznie szybszy Windows 8 w wersji Professional to oferta którą trudno zignorować. Szkoda że to tylko 3 miesięczna promocja. Microsoft powinien tą cenę utrzymać już na stałe, znacznie ułatwiłby życie programistom
Dodaj komentarz