Я использую метод IDXGISwapChain1::Present1 для управления видеокадрами на Xbox.
SyncInterval = 1
Для 60 Гц и видео с частотой 30 кадров в секунду все работает как положено -> интервал между установкой нового кадра составляет 16/17 мс. IDXGISwapChain1::Present1 занял 14/15 мс.
но для 120 Гц и видео с частотой 60 кадров в секунду IDXGISwapChain1::Present1 занял слишком много времени... 14/15 мс, поэтому интервал между установкой нового кадра равен для 60Гц.. в чем может быть причина?
SyncInterval = 0
для 120 Гц и видео с частотой 60 кадров в секунду у меня результат такой:
12/13мс
1мс
12/13мс
1 мс
12/13 мс
...
так что среднее значение соответствует моим ожиданиям xD (8,3 мс)
но в данном случае для 60 Гц с частотой 30 кадров в секунду каждый кадр отображается 4 раза... (также 12/13 мс, 1 мс, 12/13 мс...)
Вот мой код:
RECT rect = {static_cast(x), static_cast(m_height - y - height),
static_cast(x + width), static_cast(m_height - y)};
DXGI_PRESENT_PARAMETERS params = {1, &rect, nullptr, nullptr};
result = m_swap_chain->Present1(swap_interval, 0, ¶ms);
Подробнее здесь: https://stackoverflow.com/questions/793 ... with-120hz