Linux上でネイティブなDirectX 10/11の実装が実現 – Gallium3DによりオープンソースでGPUドライバ実装が可能に

phoronix.com Direct3D 10/11 Is Now Natively Implemented On Linux! Published on September 21, 2010 Written by Michael Larabel より。

概要として、

Luca BarbieriとMesa / Gallium3D開発者がオープンソースのグラフィクスドライバでMicrosoftのDirectX10と11のAPIをLinuxに搭載することに成功し、既に動作しておりWineに統合中とのこと。

Luca Barbieriは「D3D1x」と呼ばれているDirect3D 10/11 COM APIをGallium3Dに追加した。
Lucaはこれは単なる初期バージョンであるとしているが、既に動作しいくつかのDirectX10/11のテクスチャデモがLinux上で動作させることが可能。
これは現在のWine実装のようにDirect3DをOpenGLへ変換したりせず、ネイティブにGallium3DとTGSIに直接グラフィクスドライバ及びハードウエアとやりとりが可能である。
Gallium3Dの設計に感謝し、Direct3Dのサポートが基本的にLinuxドライバにほんの少しかほとんど変更無しで「フリー」で可能となる。

freedesktop.orgのコミットを読むと、「最初のゴールは複数のAPIサポートというGalliumの約束を現実にすることであり、Galliumの上に非常に薄い簡単な実装により動作を可能にすることを提供し、たくさんの巨大な絡みあったプログラムコードの必要なOpenGLの代わりになる。2番目のゴールはWineを使いLinux上でWindowsのDirect3D 10/11仕様のゲームを動作させることである。」

Wineもこの活躍に感謝を示し、DLLのいらないWineへの組み込みは行われいているが、Lucaは目標達成は全く持って簡単であると語った。

もしこの出来事がより良くできなければ、「FglrxとnvidiaドライバはOpenGLを使えるようなGalliumドライバを開発することでサポートが可能となり、それは比較的簡単な作業である。Direct3D 10/11の偉大な設計とGalliumとの近密性に感謝し、このアプローチが体感できるようなオーバーヘッド無しで結果を得られ、FglrxやnvidiaのプロプライエタリドライバからGalliumのオープンソースドライバに切り替えるパッチを提供するだけででほとんどメンテナンス可能になる。

特にDirectX10.0の限定サポートやDirectX11.0の未サポート状態のWineにとってこのニュースは信じられないようなものである。

現在の他のゴールについて、「3番目のゴールはWindowsシステム以外で動作するOpenGLを代替する高品質なグラフィクスプログラムの実現を可能にし、特にLinuxやその他フリーやオープンソースシステムにもたらされる。一から開発されたこの非常に簡潔で練られたコードに感謝し、Direct3D 10/11はOpenGLに比べ極めて良いAPIであり、極端なまでに少ないコードと開発時間でサポートすることが可能となり、あなたは現在存在するMesa OpenGL実装のプログラムソースと比較することも可能である。」

Linux上で標準でDirect3D 10/11が実装されたことについていくつか考えさせられるのは、「最後に、成熟したDirect3D 10/11実装はOpenGL実装に比べ本質的により高速でより高信頼であり、劇的に小さなAPIはアプリケーションを開発する目的のために必要な開発により多くの時間を割くことが可能になる。」

VMwareは以前Direct3Dの実装をし、それはオープンソースでもなく、Windows上でのGallium3D実装でDirectX9をターゲットにしたものであったが、それとは全く異なり、コミュニティメンバー達により開発されたオープンソースであるということである。

Gallium3Dの成果はMesa開発者たちにも可能なマイルストーンを準備した。
幸運にもまもなく私たちはOpenGL 3.x/4.0が実装されるのを遂に実現できるだろう。Linux上でのDirect3D 10/11実装の実現には26,000行の追加がMesaに必要であった。
私はMicroosftがDirect3DをLinux上で実装するのに彼らに何故ビール(※beerとwine。ソース元のページには開発者がビールで祝っている画像がある)を買ってやったのか不思議でたまらない。

※コミット内容

  • Independently created headers for Direct3D 10, 10.1, 11 and DXGI 1.1, partially based on the existing Wine headers for D3D10 and DXGI 1.0
  • A parser for Direct3D 10/11 DXBC and TokenizedProgramFormat (TPF)
  • A shader translator from TokenizedProgramFormat to TGSI
  • Implementation of the Direct3D 11 core interfaces
  • Automatically generated implementation of Direct3D 10 and 10.1
  • Implementation of DXGI using the “native” framework of the EGL st
  • Demos, usable either on Windows or on this implementation
    • d3d11tri, a clone of tri
    • d3d11tex, a (multi)texturing demo
    • d3d11gears, an improved version of glxgears
    • d3d11spikysphere, a D3D11 tessellation demo (currently Windows-only)
  • A downloader for the Microsoft HLSL compiler, needed to recompile the shaders (compiled shader bytecode is also included)

なお、x86_32でのみテストしたとのこと。

—-

すごい事になったな。OpenGLを介さずに実現するとは。

nVidiaのノートPC向けDirectX11対応GPU Geforce GTX400Mシリーズがフルラインナップで登場

anandtech.com NVIDIA 400M: DX11 Top to Bottom Solutions Now Available by Jarred Walton on 9/3/2010 12:02:00 AM より。

4gamer.net NVIDIA,ノートPC向けGPU「GeForce 400M」の新製品7モデルを一挙発表 ライター:宮崎真一 より。

概要として、

  • nVidia Geforce GTX480MはGF100のダウンクロック版。
  • 実際デスクトップ向けGTX465と同じコア数。消費電力(TDP?)は驚異の100W。
  • Optimusテクノロジでアイドル時のGPU消費電力は0Wだそうだが。
NVIDIA High-End 400M Specifications
GeForce GTX 480M GeForce GTX 470M GeForce GTX 460M
Codename GF100 GF104? GF104?
CUDA Cores 352 288 192
Graphics Clock (MHz) 425 535 675
Processor Clock (MHz) 850 1100 1350
Memory Clock (MHZ) 1200 1250 1250
Standard Memory Configuration GDDR5 GDDR5 GDDR5
Memory Interface Width 256-bit 192-bit 192-bit
Memory Bandwidth (GB/sec) 76.8 60 60
SLI Ready Yes Yes Yes

票の出典はanandtech.com

  • 対応技術 : DirectX11, OpenGL 4.0, PhysX, Optimus, CUDA, DirectCompute, OpenCL, H.264/VC1/MPEG2 1080p ハードウエア動画デコード, Blu-ray デコードフル対応。HDMI 1.4a対応。
  • 直接の競合はAMDのMobility Radeon 5800・5700・5600シリーズ。
NVIDIA Performance and Mainstream 400M Specifications
GeForce GT 445M GeForce GT 435M GeForce GT 425M GeForce GT 420M GeForce GT 415M
Codename GF104 and GF106? GF106? GF106? GF106? GF108?
CUDA Cores 144 96 96 96 48
Graphics Clock (MHz) 590 650 560 500 500
Processor Clock (MHz) 1180 1300 1120 1000 1000
Memory Clock (MHZ) 800/1250 800 800 800 800
Standard Memory Configuration DDR3/GDDR5 DDR3 DDR3 DDR3 DDR3
Memory Interface Width 128/192-bit 128-bit 128-bit 128-bit 128-bit
Memory Bandwidth (GB/sec) 25.6/60.0 25.6 25.6 25.6 25.6
SLI Ready No No No No No

票の出典はanandtech.com

  • これらのチップはすべてSLI非対応。
  • とりあえず300Mシリーズ比で平均40%の性能向上を果たしている。
  • Optimus技術を使っている会社はAcer、Asus、Dell、Lenovo、Samsung、Toshibaだが、IntelのSandy Bridgeが登場したら必要なくなる可能性がある。

—-

どうみてもノートPCに採用できる消費電力じゃないな。AMDのノート向けGPUチップは注文が殺到しているようだが…

Flashのオープンソースクローン「Gnash 0.8.8」でYoutubeの動画再生やVAAPIに対応

sourceforge.jp YouTubeへの完全対応をうたうオープンソースのFlash実装「Gnash 0.8.8」リリース 2010年08月24日 12:48 より。

主な特徴は下記の通り。

  • Flashのオープンソースクローンである「Gnash 0.8.8」でYoutubeの動画再生
  • swf形式のコンテンツの再生が可能。
  • ライセンスはGPLv3
  • 動画再生形式はYoutubeに完全対応し、Flashが対応するすべての動画が再生可能。
  • 対応OSはGNU/Linux、組み込み系GNU/Linux、BSDなど。
  • x86, ARM, MIPS, PowerPC, 及び64bitアーキテクチャCPUに対応。
  • 対応ブラウザはFirefoxなどのGeckoエンジンブラウザ、Google Chrome、Konqueror、
  • VAAPIに対応したハードウエア動画再生支援機能が利用可能。Intel、nVidiaやAMDのGPUに搭載されている動画再生支援機能などが対象。
  • 再生レンダリングランタイムエンジンを切替可能。OpenGLやCairo、AGG等複数。
  • FFmpegとGStreamerのメディアハンドラの切り替えに対応。
  • ブラウザのJavascriptやActioncriptと連携可能。
  • 内部依存性を減らしコンパイル速度が向上、またraw framebufferを利用したインプットデバイスの速度向上。

Gnash Project http://gnashdev.org/

「Gnash 0.8.8」のダウンロードはこちらから http://www.getgnash.org/

CPUアーキテクチャが複数利用できるのは良い点かと。