Есть 2 контекста OpenGLES2, которые являются одной и той же «группой общего доступа». Я знаю, что можно загрузить текстуру в рабочий поток, пока она не используется в потоке рендеринга. Но можно ли загрузить часть данных в регион на текстуре атласа из рабочего потока и выборку из той же текстуры атласа (но из другого региона, конечно)? Я читал, что рендеринг в текстуру и выборка из нее приведут к неопределенному поведению (если не использовать NV_texture_fence), но на самом деле это не мой случай.
Загрузка данных в текстуру атласа в рабочем потоке и выборка из той же текстуры в потоке рендеринга
Ответы (1)
Нет, это нарушает 1-е и 2-е правила из документации:
Ваше приложение несет ответственность за управление изменениями состояния объектов OpenGL ES, когда общая группа используется несколькими контекстами. Вот правила:
- Ваше приложение может одновременно обращаться к объекту в нескольких контекстах, при условии, что объект не изменяется.
- Пока объект изменяется с помощью команд, отправленных в контекст, объект не должен считываться или изменяться в любом другом контексте.
- После изменения объекта все контексты должны повторно связать объект, чтобы увидеть изменения. Содержимое объекта не определено, если контекст ссылается на него перед привязкой.
person
bobobobo
schedule
17.08.2013