同じ「共有グループ」である 2 つの OpenGLES2 コンテキストがあります。レンダリング スレッドで使用されていないときに、ワーカー スレッドでテクスチャをアップロードできることはわかっています。しかし、データの一部をワーカー スレッドからアトラス テクスチャの領域にアップロードし、同じアトラス テクスチャからサンプルをアップロードすることは可能ですか (ただし、もちろん別の領域から)。テクスチャへのレンダリングとサンプリングが未定義の動作につながることを読んだことがありますが (NV_texture_fence を使用しない限り)、実際にはそうではありません。
1 に答える
0
いいえ、それはドキュメントの 1 番目と 2 番目のルールを破っています。
共有グループが複数のコンテキストで共有されている場合、OpenGL ES オブジェクトの状態変更を管理するのはアプリケーションの責任です。ルールは次のとおりです。
- オブジェクトが変更されていなければ、アプリケーションは複数のコンテキストで同時にオブジェクトにアクセスできます。
- コンテキストに送信されたコマンドによってオブジェクトが変更されている間は、他のコンテキストでオブジェクトを読み取ったり変更したりしてはなりません。
- オブジェクトが変更された後、変更を確認するには、すべてのコンテキストでオブジェクトを再バインドする必要があります。オブジェクトをバインドする前にコンテキストがオブジェクトを参照する場合、オブジェクトの内容は未定義です。
于 2013-08-17T20:00:14.150 に答える