Спасибо! KHR_parallel_shader_compile мы используем — весь прелоад построен на renderer.compileAsync. Но оказалось, что расширение параллелит только линковку: дорогая часть — синхронная рефлексия uniform’ов (WebGLUniforms) при первом реальном draw call, 160–340 мс на программу в ANGLE/D3D11 и её нельзя прервать. Поэтому мы перед показом модели принудительно вызываем getUniforms() в рамках бюджета 170 мс/кадр. Замеры — только Windows/ANGLE+D3D11 (GTX 960); вопрос про Metal/Mesa справедливый, там预热, скорее всего, не нужен вообще — планируем делать адаптивный порог.
Информация
В рейтинге
Не участвует
Откуда
Acheng, Shandong, Китай
Зарегистрирован
Активность
Специализация
Десктоп разработчик, Архитектор программного обеспечения
Спасибо! KHR_parallel_shader_compile мы используем — весь прелоад построен на renderer.compileAsync. Но оказалось, что расширение параллелит только линковку: дорогая часть — синхронная рефлексия uniform’ов (WebGLUniforms) при первом реальном draw call, 160–340 мс на программу в ANGLE/D3D11 и её нельзя прервать. Поэтому мы перед показом модели принудительно вызываем getUniforms() в рамках бюджета 170 мс/кадр. Замеры — только Windows/ANGLE+D3D11 (GTX 960); вопрос про Metal/Mesa справедливый, там预热, скорее всего, не нужен вообще — планируем делать адаптивный порог.