Я бы ожидал, что вариант 2 будет работать так же хорошо, если только нет существенного совпадения в вычислениях, выполняемых каждым шейдером (т. Е. Совместно используемыми временными файлами). Затраты командных буферов довольно незначительны.
Выможно профилировать это с помощью инструментов и шаблона "Metal System Trace".Он скажет вам, сколько времени каждое ядро тратит на выполнение, и промежутки между ними (где происходит копирование памяти, очереди в буфере команд и т. Д.).Если профиль для варианта 2 показывает кучу пробелов, где графический процессор не используется, то я ошибаюсь, и, возможно, вам нужно делать меньше проходов:)