久々にIntelがOpenGL拡張を出していました。
それは、GL_INTEL_map_texture というもので、内容を読むと
GPUが読んでいるメモリ領域を直接CPUからアクセス可能にする拡張のようです。
確かに最近のIntel CPUはGPU統合してしまっており、グラフィックスメモリはすなわちメインメモリなわけで、CPUから直接扱うことが出来るようになっても自然です。
VRAMのように振る舞って一度メインメモリにコピーとか無駄なことをしなくてすむわけです。
増える関数はこんな感じです。
void* MapTexture2DINTEL(uint texture, int level, bitfield access, int *stride, enum *layout); void UnmapTexture2DINTEL(uint texture, int level); void SyncTextureINTEL(uint texture);
おおよそ通常のglMapBuffer/UnmapBufferと同じようですが、CPU/GPUでメモリ同期を取るためのSync関数も用意があるみたいです。
仕様: http://www.opengl.org/registry/specs/INTEL/map_texture.txt
コメント