В свободное время я разрабатывал небольшую инди-игру и столкнулся с необъяснимой проблемой. Некоторые сборки игры будут случайным образом работать на несколько сотен кадров в секунду медленнее, чем другие сборки. Например, при рендеринге некоторого текста без 3D-сцены, я могу достичь 1800FPS на моем собственном оборудовании. Добавьте одну трехмерную сферу (10 тыс. Вершин, затененных пикселями) и получите 1700 кадров в секунду. Добавьте еще две сферы, достигните 800 FPS. Удалите все сферы, достигните 1100FPS - даже несмотря на то, что код теперь воспроизводит ту же сцену, что и я, ранее достигнутую при 1800FPS, что является просто отображаемым счетчиком FPS. Я попытался пересобрать и очистить проект и перезагрузить компилятор. Это в режиме Release, и я включил все оптимизации, которые смог найти. Любые предложения относительно причины?
Я запустил быстрый профиль, и Visual Studio, кажется, думает, что более 90% моего времени было потрачено на D3D9_43.dll, предполагая, что это не ошибка в моем приложении, что не объясняет, почему это проявляется только в некоторых строит.
Я перезагрузил свою машину, и она вернулась к скорости 1800FPS. Я думаю, что это ошибка в инструментах DirectX SDK (среди многих других). Собираюсь удалить этот вопрос.