Ban dla Sound Blastera!

Długo nie mogłem uwierzyć w to, co usłyszałem zaraz po odbywającej się na tegorocznych targach CeBIT konferencji na temat nowych produktów Creative’a. Od jednego z inżynierów tej firmy dowiedziałem się rzeczy dość dziwnej i zaskakującej. Otóż Microsoft zablokował w systemie Windows Vista możliwość sprzętowego przetwarzania efektów dźwiękowych!

Czas na dochodzenie

Dłuższa rozmowa w gronie kilku dziennikarzy i przedstawicieli Creativa’a pozwoliła ustalić fakty. Co prawda inżynierowie nie kwapili się zbytnio, aby podać bardziej szczegółowe informacje. Wynikało to m.in. z tego, że nie mogą zdradzać swojego warsztatu pracy i sposobów współpracy z Microsoftem – było to tym bardziej zrozumiałe, że Visty nie ma jeszcze oficjalnie na rynku. Niemniej dowiedzieliśmy się w ogólnych zarysach, dlaczego w Viście nie będzie np. sprzętowego wspomagania dla najnowszego systemu EAX Advanced HD 5.0.

Otóż wszystkiemu winna jest zmiana organizacji warstw w systemie Vista. Do tej pory sterowniki umieszczone były w tej samej warstwie, w której działa jądro systemu. Błąd sterownika mógł zatem spowodować niestabilną pracę całego OS-u. Taki błąd w skrajnym wypadku może sprawić, że pojawi się “niebieski ekran śmierci”. Aby tego uniknąć, w Viście sterowniki przeniesiono do wyższej warstwy. Drivery komunikują się teraz ze sprzętem wyłącznie poprzez specjalnie opracowane procedury jądra systemu.

Emulacja na maksa

No dobrze, ale na zdrowy rozum nie powinien to być jeszcze powód, żeby nie można się było dostać do sprzętowych funkcji przetwarzających dźwięk. Niestety, okazuje się, że tak jest. Microsoft, tworząc nowy OS, wykonał kilka moim zdaniem dość nietypowych posunięć.

W Viście komunikację warstwy sterowników z warstwą jądra systemu i sprzętu zapewniają w wypadku dźwięku i grafiki wyłącznie biblioteki DirectX. Co ciekawe, zarówno odpowiedzialna za grafikę trójwymiarową część DirectX, jak i przetwarzający dźwięk moduł DirectSound mają dość sztywną konstrukcję. Można w nich realizować jedynie takie efekty, jakie przewidział w swojej specyfikacji Microsoft. Nie da się tutaj w żaden sposób “doczepić” własnych rozszerzeń. Na szczęście moduł graficzny DirectX pozwala zastosować programy shaderowe. Mogą być one zgodne ze specyfikacją od Shader Model 2.0 do Shader Model 4.0 – tutaj projektanci gier mają zatem dużą swobodę przy realizacji swoich trójwymiarowych graficznych pomysłów.

Z punktu widzenia programistów znacznie gorzej jest z DirectSoundem. Moduł obecny w Viście na razie ogranicza się do efektów na poziomie EAX 2.0, i to realizowanych softwa­re’owo przez procesor! Sprzęt ma tylko fizycznie odtworzyć strumień danych wysyłanych przez system operacyjny. To tak, jakby ktoś specjalnie zaprojektował cały podsystem dźwiękowy wyłącznie do pracy z chipami dźwiękowymi montowanymi w płytach głównych.

Mało tego, Vista uniemożliwia wykorzystanie własnych bibliotek graficznych OpenGL i dźwiękowych OpenAL (Open Audio Library), używanych między innymi przez Creative’a do obsługi niestandardowych efektów dźwiękowych, zaszytych w kościach z serii Sound Blaster. Owszem, biblioteki OpenGL i Open AL w Viście się zainstalują, ale operacje współpracy ze sprzętem będą i tak realizowane poprzez emulatory OpenGL i OpenAL, znajdujące się w DirectX.

Nieszczęścia chodzą w parze z bibliotekami

Niestety, programiści Microsoftu przewidzieli jedynie zgodność emulatora DirectX z OpenGL 1.4 i OpenAL 1.1. Jak już wspomniałem, karty Sound Blaster Audigy, Audigy 2 czy X-Fi korzystają zaś z bibliotek OpenAL 1.1 z dodatkowymi własnymi rozszerzeniami. Dzięki nim programy i gry mogą właśnie wykorzystać sprzętowe wspomaganie dźwięku, zaimplementowane w tych muzycznych chipach, a rozszerzeń bibliotek OpenGL i OpenAL Vista w ogóle nie akceptuje przy emulacji! Problem jest na tyle skomplikowany technicznie, że inżynierowie z Creative’a nie mogą go obecnie w żaden sposób obejść. Nowoczesne karty Creative X-Fi są zatem przy współpracy z Vistą niewiele lepsze od zwykłego wyjścia dźwiękowego z płyty głównej!

Czy problem zostanie rozwiązany? Tego nie udało mi się dowiedzieć. Wiadomo jedynie, że przedstawiciele Creativa’a rozmawiają w tej chwili z Microsoftem na temat odblokowania “ścieżki” dojścia do sprzętowego wspomagania dźwięku. Moim zdaniem wszystko sprawia wrażenie, jakby Microsoft strzelał sobie w stopę. Wszak nie chodzi tylko o dźwięk – takie gry jak np. Quake 4, bazujące na OpenGL, będą działały poprzez emulację DirectX na Viście znacznie wolniej. Sytuacja może doprowadzić do tego, że gracze zignorują Vistę, pozostając przy Windows XP.