「XはGPUで高速化されています」、「YはGPUで高速化されていません」など、いくつかの参考資料を読んでいますが、完全なリストが見つかりません。CSS3のどの部分がGPUで高速化されていますか?
2 に答える
そうです、これは興味深いトピックであり、実際にはブラウザとグラフィックカードに依存します。私はこれについてしばらく研究するつもりだったので、ここに簡単な要約があります。
Webkit(Safari、Chrome、iOS、Android)
Webkitでは、AnimationBase.cppで指定されていましたが、移動したようです。ドー!とにかく、コードを検索するとACCELERATED_COMPOSITING
、それが見つかります。
具体的には、何かがこれらのいずれかに一致する場合、それを加速することができます(少なくともChromiumでは):
- レイヤーには3Dまたは透視変換CSSプロパティがあります
- Layer is used by element using accelerated video decoding
- Layer is used by a element with a 3D context or accelerated 2D context
- Layer is used for a composited plugin
- Layer uses a CSS animation for its opacity or uses an animated webkit transform
- Layer uses accelerated CSS filters
- Layer has a descendant that is a compositing layer
- Layer has a sibling with a lower z-index which has a compositing layer (in other words the layer is rendered on top of a composited layer)
Gecko (Firefox)
In Gecko, https://wiki.mozilla.org/Platform/GFX/HardwareAcceleration explains their plan/implementation, much like IE, on XP the options are more limited, but every other OS gets some acceleration if the graphics card is supported properly. Firefox 4 (I think!) added acceleration for text, canvas and transforms.
Trident (IE)
IE10 seems to have pretty much everything HW accelerated. http://blogs.msdn.com/b/ie/archive/2011/04/26/understanding-differences-in-hardware-acceleration-through-paintball.aspx
It is pretty quick, so I don't really doubt their claim!
GPUアクセラレーションについて説明しているCSS3仕様はありません。代わりに、GPUを使用するCSS3の部分を決定するのは、特定のハードウェアにブラウザーを実装する各ブラウザーメーカーまたは会社の責任です。そして、これはあるデバイスから次のデバイスに簡単に変更できます。
たとえば、約1年前の時点で(最新の情報はありません)、3D変換はiPhone3でGPUアクセラレーションされましたが、2D変換は行われませんでした。しかし、その情報はiPhone3s、iPhone4、または将来のiPhone5では完全に異なる可能性があると思います。