2016-12-27 21 views
1

私は、Mesa、ANGLE、AMD EGLなど、さまざまなEGL実装で動作するアプリケーションを開発しています。アプリケーションは複数のスレッドを作成し、各スレッドには多数のEGLContextがあります。EGLContextリソースは自動的に解放されますか?

スレッドが終了するときに、コンテキスト内で作成されたすべてのテクスチャ、バッファなどを破棄する前に(例えば、//DestroyContext)、コンテキストを破棄するだけで十分ですか?ハードウェアがiGPUであり、メモリとしてシステムRAMを使用していると仮定します。

答えて

2

したい場合は、それらを破壊することができますが、する必要はありません、 "レンダリングコンテキストの破棄" 57ページ(強調鉱山)

EGL 1.5 spec、セクション3.7.2:

EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx);

ctxに関連するリソースは、なるべく早急に削除するようにマークされています。複数のコンテキストがオブジェクトを共有する場合(eglCreateContextを参照)、そのような共有オブジェクトは、共有リストのすべてのコンテキストが破棄されるまで削除されません。 eglDestroyContextに続いて、それを参照するコンテキストとハンドルは、eglTerminate(セクション3.2を参照)によって破棄されたコンテキストと同じ方法で処理されます。

関連する問題