Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
А ещё обработку ввода (опрос геймпада и всё такое) утаскивают в отдельный поток. Но пока у меня тупо опрос раз в кадр.Да, это будет полезно. Но только в случае с решением на Event/Текстуре, потому как после того, как кадр нарисован, нам нужно как можно быстрее загрузить видеокарту снова, и это сэкономит время на обработку ввода. Ведь свежие данные уже подготовил отдельный поток. В остальных случаях это мало поможет, если ботлнек GPU.
This interface is not supported by DXGI 1.0, which shipped in Windows Vista and Windows Server 2008. DXGI 1.1 support is required, which is available on Windows 7, Windows Server 2008 R2, and as an update to Windows Vista with Service Pack 2 (SP2) (KB 971644) and Windows Server 2008 (KB 971512).
Вы рассмотрели самый не интересный случай. Когда игра тормозит настолько инпут лаг уже не важен
Также у вас тут решается не проблема инпут лага, а проблема неправильного построенного цикла отрисовки.Пример не покажите, как делать правильно?
Тут уже нужно стараться считывать состояние контролера и задействовать его максимально близко по времени к vsync'у текущего кадра.В статье именно это и делается.
Поскольку даже если сам процесс рендеринга нормальный и игра выдаёт 60 фпс, то вы получите при нормальной загрузке задержку 33 мс (16=1000/60мс построение кадра на CPU + 16мс рендер на GPU).С самого начала статьи я рассказываю, и подробно на графиках показываю, как именно происходит рендеринг. Вы считаете совершенно не правильно. Во-первых, даже при 60FPS формирование кадра на GPU может занимать значительно меньше 16мс. Во-вторых, CPU и GPU работают параллельно. Пока CPU формирует кадр — GPU может его уже рисовать. Они работают одновременно. И по результатам GPUView это отлично видно. Нельзя просто складывать время CPU и GPU.
тут нет борьбы с инпут лагом, а идёт решение другой проблемы.Судя по предыдущему комментарию — я полагаю, что вы не поняли статьи.
Вот как раз организация параллельного рендера текущего кадра без простоев на GPU и CPU достаточно интересная задача и про неё было бы интересно почитать.В статье много интересных картинок из GPUView. Скажите честно, вы понимаете что на них вообще нарисовано? Если да, то покажите мне простои GPU на вот этом изображении:
а GPU уже нарисовал всё что было и ждётТогда все замечательно. Проверка одного евента пракически никак не замедлит работу.
GPU делает долгий пост процессинг, а вы его сидите и ждёте на CPU и не начинаете считать следующий кадр.Считать следующий кадр никто не мешает. Сначала считаем, потом ждем. Еще раз, статья про рендеринг, и про то, что критичные к вводу данные (типа положения камеры, возможно положения игроков) нужно засылать на рендеринг как можно позже. Нет никакого смысла накидывать 3 кадра на GPU, потому что спустя 3 кадра вы все так же будете ждать, но уже в Present, в довесок имея Input Lag размером в 4 кадра.


то бывает, когда вас в очередной раз убивают в компьютерной игре, и вы кричите: «Ну я же нажал блок/атаку/уворот». Ну а затем джойстик летит в стену.
Я бы не советовал называть статью «Input lag», поскольку такое название вводит в заблуждение. «Input» это система ввода — джойстики, мыши, клавиатуры, и т.д. Соответственно, ожидается что «Input lag» — это проблема подсистемы ввода.Я с радостью пофилософствую с вами на эту тему, но сразу после того, как вы исправите статью на вики: en.wikipedia.org/wiki/Input_lag
Input lag во время рендеринга и как его побеждать