У меня есть шейдер, который в настоящее время выполняет трассировку лучей. Шейдер раньше воспринимал информацию сцены как униформу для визуализации сцены, но это оказалось слишком ограниченным, поэтому мы переключились на использование SSBO (буферных объектов хранилища шейдеров). Код прекрасно работает на двух компьютерах, но другой компьютер выполняет его очень медленно. Видеокарта для этого компьютера — Radeon HD 6950. Правильно отображающие видеокарты — GTX 570 и Radeon HD 7970. Сцена отображается правильно на трех компьютерах, но Radeon HD 6950 рендерит ее очень медленно ( 1 FPS, когда мы вращаемся вокруг сцены). Мы думали, что это проблема с версией openGL, но, похоже, это не так, поскольку мы обновили драйверы, и она все еще не работает. Есть идеи, где проблема может быть?
Есть несколько возможностей:
Вы не говорите, с какой ОС вы работаете, поэтому я не уверен, что вам сказать об устранении проблемы. В MacOS вы можете использовать OpenGL Profiler, чтобы проверить, не откатывается ли он к программному обеспечению, и использовать OpenGL Driver Monitor, чтобы проверить, не выгружается ли он. На iOS вы можете использовать инструмент профилирования OpenGL от Xcode для обоих. Я не уверен в Windows или Linux, поскольку у меня нет опыта работы с ними.
Других решений пока нет …