タグ

2015年4月15日のブックマーク (2件)

  • Metalの「shared CPU/GPU memory buffer」について : DSAS開発者の部屋

    iOS8のリリースにより、A7を搭載したiOS端末からはOpenGLESに代わる新グラフィックスAPIであるMetalが動くようになりました。 iOS8発表時のAppleのKeynoteで紹介されたとおり、MetalはOpenGLとくらべてAPIの層が薄くて最適化されているので高速に動作するようで、他の多くの記事でもこの事が書かれています。 しかし実際にMetalに触れてみると、単にAppleのハードウェアに最適化されていてオーバーヘッドが低く速いということに留まらず、ある一つの特長に気付きます。 それは「shared CPU/GPU memory buffer」つまりCPU/GPU間でメモリが共有されているというものです。 ここでは今までiOSの3Dアプリケーション開発に利用されていたOpenGLESでのメモリの扱い方と比較しつつ、CPU/GPU間でメモリが共有されることのメリットについ

    Metalの「shared CPU/GPU memory buffer」について : DSAS開発者の部屋
  • Metalのコードを読む前に知っておくと楽なこと : DSAS開発者の部屋

    iOSのDeveloperサイトでは基的なものから応用的なものまでいくつかのMetalのサンプルがダウンロードできるようになっています。 早速Metalを学習しようと一番基的なサンプルを紐解いてみるも、以下のように沢山のクラスが登場します。 ・MTLDevice ・MTLBuffer ・MTLTexture ・MTLCommandQueue ・MTLCommandBuffer ・MTLRenderCommandEncoder ・MTLLibrary ・MTLFunction ・MTLRenderPipelineState 主なものを列挙してみましたが、数が多いだけに前提知識無しでいきなりサンプルを読み進めるのは困難です。 そこで今回はこれらのクラスがレンダリング全体の流れの中でどのような役割を担っているか図で整理しながら紹介したいと思います。 ここで紹介する流れは複雑なサンプルであって

    Metalのコードを読む前に知っておくと楽なこと : DSAS開発者の部屋