Как включить vsync в DirectX10

Я работаю над приложениями, основанными на DirectX10 с использованием SlimDX. Я хотел бы включить vsync, похожий на DirectX9, но, похоже, fps не работает на частоте 60 Гц (что происходит, если я использую Direct9). Я устанавливаю vsync с помощью этого

SwapChain.Present(1, PresentFlags.None);

Я сделал что-то неправильно?

Кстати, я использую Win7 с видеокартой ATI HD5570. После некоторого поиска в Google я понимаю, что ATI может принудительно вызывать vsync в некоторых играх. Поэтому мне интересно, связано ли это.

Ссылка для кода на C++ тоже подойдет. Я переведу это сам.

Спасибо

2 ответа

Первый аргумент SwapChain.Present - это syncInterval. 0 указывает, что представление должно происходить немедленно, без синхронизации. Любое другое значение указывает, что представление должно быть синхронизировано с указанным следующим вертикальным пробелом. Так что используйте это так:

SwapChain.Present(0, PresentFlags.None);

Вы можете попытаться форсировать vsync, используя Catalyst Control Center

Другие вопросы по тегам