У меня такая ситуация, когда весь мой конвейер может быть запущен в одном буфере команд, кроме двух вычислительных ядер. Я должен проверить результаты последнего ядра, чтобы закодировать команду 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 мс для ускорения моей обработки.