WebGL работает не так.
С точки зрения JavaScript и WebGL ничего не работает параллельно. Любая ошибка, которую вы видите, скорее всего, является результатом ошибки в вашем коде, а не имеет ничего общего с параллельной работой WebGL.
Из спецификации:
Команды всегда обрабатываются в том порядке, в котором они получены, хотя может иметь место неопределенная задержка, прежде чем результаты команды
понял. Это означает, например, что один примитив должен быть нарисован полностью
прежде чем любой последующий может повлиять на кадровый буфер. Это также означает, что запросы
и операции чтения пикселей возвращают состояние в соответствии с полным выполнением всех
ранее вызванные команды GL ... эффекты команды GL на режимах GL или кадровом буфере должны быть завершены, прежде чем любая последующая команда сможет иметь такие эффекты
Нет случая рендеринга в кадровый буфер и его неготовности для использования результатов в вызове отрисовки.
В комментариях вы утверждаете, что вызов gl.finish
исправил вашу ошибку, но это было скорее совпадением с тем, чем на самом деле является ваша ошибка.
Опубликуйте репо, если вы считаете, что видели иначе, поскольку это будет ошибка в вашем браузере и о ней следует сообщить. Вы упоминаете, что текстуры пустые. Это больше похоже на то, что вы пытаетесь визуализировать содержимое холста, и они очищаются, что является частью спецификации. Не видя ваш код, мы не можем сказать вам, какова реальная проблема, но вряд ли вы написали свой вопрос.