iOS Металл Можно условно кодировать команды в буфер команд - PullRequest
0 голосов
/ 17 января 2020

У меня такая ситуация, когда весь мой конвейер может быть запущен в одном буфере команд, кроме двух вычислительных ядер. Я должен проверить результаты последнего ядра, чтобы закодировать команду A или команду B дальше.

Псевдопоток кода:

Command Buffer 1: commandEncoder1 -> dispatchThreads , commandEncoder2 -> dispatchThreads 
Check output of commandEncoder2, if it is 1 then commandEncoder3 -> dispatchThreads else commandEncoder4->dispatchThreads.

В данный момент мне нужно подождать с помощью WaitForCompletion для CommandBuffer1, проверить результаты и запустить новый CommandBuffer с помощью commandEncoder3 или commandEncoder4 на основе результатов commandEncoder2.

Есть ли способ сделать то же самое без фиксации буфера команд? Я теряю около 3,2 мс от отправки до отправки нового commandBuffer, и мне действительно нужны эти 3,2 мс для ускорения моей обработки.

...