将数据上载到工作线程中的atlas纹理,并从渲染线程中的相同纹理中采样

时间:2013-07-28 07:09:06

标签: opengl-es opengl-es-2.0 textures sampling

有2个OpenGLES2上下文,它们是相同的“共享组”。我知道在工作线程中上传纹理是可能的,因为它没有在渲染线程中使用。 但是,是否有可能将部分数据上传到工作线程中的地图集纹理上的区域以及来自相同地图集纹理的样本(当然,来自不同的区域)?我已经读过渲染到纹理并对其进行采样会导致未定义的行为(除非使用NV_texture_fence),但实际上并非我的情况。

1 个答案:

答案 0 :(得分:0)

,打破1st and 2nd rules from the docs

  

当多个上下文共享共享组时,您的应用程序负责管理OpenGL ES对象的状态更改。以下是规则:

     
      
  1. 您的应用可以同时访问多个上下文中的对象如果对象未被修改
  2.   
  3. 当发送到上下文的命令正在修改对象时,不得在任何其他上下文中读取或修改对象
  4.   
  5. 修改对象后,所有上下文必须重新绑定对象才能看到更改。如果上下文在绑定它之前引用它,则该对象的内容是未定义的。
  6.