В целом (как Вы отметили) состояние не наследуется между буферами команд .Это означает, что Вам необходимо настроить состояние (которое имеет отношение к операциям рисования или вычисления) в каждом буфере команд отдельно.Есть некоторые исключения из этого правила, но они не связаны с проблемой, о которой вы говорите.
Итак да, вам нужно установить значения констант push в каждом буфере команд отдельно .
Что касается совместимости компоновки конвейера Это означает, что когда вы устанавливаете какое-либо состояние конвейера для данного конвейера, а затем когда вы связываете другой конвейер с совместимой компоновкой , Вам не нужно снова устанавливать то же состояние.Он сохраняется между конвейерами с совместимыми макетами .Итак, еще раз, да, вы можете "обновить push-константу один раз и использовать обновленные значения в последующих командах" . Но это должно происходить в том же буфере команд. Вы можете использовать обновленные значения в конвейерах, привязанных к одному и тому же буферу команд.Но если вы находитесь в другом буфере команд, вам нужно снова установить соответствующее состояние.Более того - после того, как вы выполняете вторичные буферы команд из первичного буфера команд, вам необходимо снова установить состояние в этом первичном буфере команд.Другими словами, основной буфер команд забывает свое состояние после выполнения дополнительных буферов команд.