Дальнейший контекст таков; У меня есть несколько вычислительных шейдеров, которые мне нужно запустить последовательно. Однако от начала до конца выполнение всех отправлений может занять много времени (> 2 секунды), и это проблема в Windows, которая приводит к ошибке тайм-аута графического процессора. На моей собственной машине я могу отредактировать TdrDelay, чтобы обойти эту проблему, но если я хочу сделать что-то, что пользователи могут использовать, не редактируя реестр вручную, мне нужно, чтобы мои отправки в очереди завершались менее чем за 2 секунды. Так…
...
this->deviceContext->Dispatch(
DispatchSize,
1,
1);
//
// <Some function or functions needed here to force
// queued dispatches to complete before continuing>
//
this->deviceContext->Dispatch(
DispatchSize,
1,
1);
...
Теперь я знаю, что метод, который я использую для чтения с БПЛА (с использованием CopySubresourceRegion и Map), выполняет это, но кажется немного затрудненным для чтения данных с БПЛА, прежде чем он станет значимым. Я попытался вставить туда Flush (), но само по себе этого было недостаточно.
Я мог бы использовать небольшой совет здесь. Благодарю.
Задача ещё не решена.
Других решений пока нет …