Существуют ли директивы DirectX для привязки и отмены привязки ресурсов между вызовами отрисовки?

Все книги и учебники по DirectX настоятельно рекомендуемсокращение выделения ресурсов между вызовами отрисовки до минимума - пока я не могуне найти каких-либо руководящих принципов, которые получают больше в деталях. Изучив множество примеров кода, найденных в Интернете, я пришел к выводу, что программисты имеют совершенно разные принципы кодирования по этому вопросу. Некоторые даже установлены и не установлены

VS/PS 
VS/PS ResourceViews
RasterizerStage 
DepthStencilState
PrimitiveTopology
... 

до и послекаждый сделать вызов (хотя настройка остается неизменной), а другие нет.

Я думаю что'немного перестарались ...

Из моих собственных экспериментов я обнаружил, что единственные ресурсы, которые я должен связывать при каждом вызове, - этоShaderResourceViews (вVS а такжеPS в моем случае). Это требование может быть вызвано использованием вычислительных шейдеров, так как я связываю / снимаю привязкуUAVs к буферам, которые связаны с /VSPS позже.

Я потерял много часов работы, прежде чем обнаружил, что этот переплет необходим. И я думаю, что многие кодеры неТочно так же и предпочитаю отвязать и привязатьслишком много вместо того, чтобы столкнуться с подобной ловушкой.

Вопрос 1: Существуют ли хотя бы некоторые практические правила в отношении этой проблемы?

Вопрос 2: Возможно ли, что мойShaderResourceViews связан сVS/PS не связаны ядром драйвера / DirectX, потому что я связываюUAVs в те же буферы до вызова диспетчеризации CS (я неубратьSRVs себя)?

Вопрос 3: Я нет даже установитьVS/PS обнулить, прежде чем использовать вычислительные шейдеры. Работает без проблем, но я постоянно чувствую себя неувереннокопаю мою следующую ловушку, используя такую "ленивый» подход.

Ответы на вопрос(2)

Ваш ответ на вопрос