Это вообще проблема с DirectX в Windows.Я подозреваю, что если вы попробуете ту же страницу в Linux или Mac или запустите Chrome с --use-angle=gl
в Windows, вы увидите падение времени.
В качестве примера вы можете попробовать этот смешной шейдер ,Компиляция в OpenGL занимает около 3 секунд, но в DirectX браузер, скорее всего, решит, что он занимает слишком много времени, и перезагрузит процесс графического процессора.
Браузер не может решить эту проблему, так как в основном в Microsoftсуд.Microsoft разработала DirectX для нативных игр.Нативные игры могут компилировать шейдеры в автономном режиме.Web не может этого сделать, потому что они являются непрозрачными двоичными файлами, передаваемыми драйверу, и могут быть полны эксплойтов.
Говорят о добавлении асинхронных функций компиляции шейдеров в WebGL.Для компиляции шейдеру все равно потребуется 40 секунд, просто он не заблокирует страницу.На данный момент это вряд ли произойдет.
Единственное, что я могу предложить, - это упростить ваши шейдеры.Если у вас есть петли, возможно, разверните их и посмотрите, поможет ли это.