Reflow(リフロー)ページの要素のサイズとか中身が変わったことでページ描画の再計算を行うこと。ページのコンテンツ全て再描画するのは重たい処理になるので、レイヤー内だけをリフローさせたりすることでリフロー範囲を減らしたりしている #fxos
2014-03-05 20:05:58Photoshopとかでレイヤー別に処理して重ねてるのと同じようにブラウザもみんなLayersあるいはCompositorと呼ばれる機能を実装していて、レイヤー間の合成とか移動とかはGPUに任せる #fxos
2014-03-05 20:04:08Android 酷いのでデバイス ID 見て異なるネイティブコードをロードしてる。/ Gecko 勉強会 #fxos
2014-03-05 20:02:23Androidも直接ハードを触るAPIをアプリが使うことはあまりないからか不安定なドライバの端末を出してくるメーカーが結構ある。仕方ないのでブラックリスト行きしたり、専用のコードを書いたりする羽目になっている #fxos
2014-03-05 20:02:06いろんなグラフィックスAPIがOSに用意されているがデバイスドライバの出来によっては正しいコードを投げてもクラッシュするので不安定なグラフィックスカードについては諦めてブラックリスト入りしてGPU使った高速化を無効化する #fxos
2014-03-05 19:58:49Gecko 勉強会 その3。 #fxos [SO-02F] http://t.co/2ZZeUnrHjG
2014-03-05 19:56:17Direct2Dはシェーダーを使って実装されていることでちゃんとGPU使った高速処理になってる #fxos
2014-03-05 19:55:34Moz2Dのバックエンドに使うAPIはDirect2D、CoreGraphics/Quartz、Skia/SkiaGL、Cairo、(nvpr)などが開発されている #fxos
2014-03-05 19:54:52Moz2D API の描画機能。Draw, Composition, Path, Gradient, Glyph Rendering (基本的に Path でレンダリング), Filter (CSS filter とか)。/ Gecko 勉強会 #fxos
2014-03-05 19:54:26Firefox OSのGonkのMoz2DはSkiaGLをバックエンドにした実装になっている #fxos
2014-03-05 19:53:44ただし現状ではCanvas以外はまだMoz2Dを直接読んでおらず、Thebesを使ってるコードが内部でMoz2Dを使う形になっている。将来的にはThebesとか間のをなくしてよりパフォーマンス向上を図りたい #fxos
2014-03-05 19:53:08ソフトウェアレンダリングになる場合は既存のCairoにまかせてMoz2Dはハードウェアアクセラレーションが効く、ブラウザに適したハイパフォーマンスAPI #fxos
2014-03-05 19:52:05昔はOS毎のネイティブAPI使っててプラットフォーム差が大きかったのでThebesというプラットフォーム間の差を吸収するものを導入した。バックエンドはCairoとかを利用していたが、Canvasとかもより高速にするためGPUアクセラレーションがきくMoz2Dを導入 #fxos
2014-03-05 19:51:25Moz2D。Mozilla で作った 2D API。ブラウザに適した API を一から作り直した。/ Gecko 勉強会 #fxos
2014-03-05 19:51:06Off Main Thread CompositingとかAsynchronize Pan/Zoom Controllerなどと言われる技術でマルチコアなどを活用して描画高速化を進めている #fxos
2014-03-05 19:48:59Gecko側ではThebesというAPIを昔使っててAzureに移行を進めている #fxos
2014-03-05 19:48:02もう少し上位ではGTK等で使われてるCairo (by RedHat, Intel...)や、Chromium等で使われてるSkia (by Google)といったところがある。 #fxos
2014-03-05 19:47:33殆どのプラットフォームで動くGPU活用APIは3D向けのOpenGLだけ。2D向けにOpenVGってのは定義されてるけどOpenGLとの同時利用が怪しくハードウェアでちゃんと実装できているチップがない。 #fxos
2014-03-05 19:46:24