Existem diretrizes do DirectX para vincular e desvincular recursos entre chamadas de desenho?

Todos os livros e tutoriais do DirectX recomendam vivamentereduzindo as alocações de recursos entre as chamadas de compra a um mínimo - no entanto, não consigo encontrar nenhuma diretriz que entre em detalhes. Revendo um monte de código de exemplo encontrado na web, concluí que os programadores têm princípios de codificação completamente diferentes em relação a esse assunto. Alguns até mesmo definir e desarmar

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

antes e depoiscada chamar chamar (embora a configuração permanece inalterada), e outros não.

Eu acho que é um pouco exagerado ...

De minhas próprias experiências, descobri que os únicos recursos que tenho que ligar em cada chamada de compra são osShaderResourceViews (paraVS ePS No meu caso). Este requisito pode ser causado pelo uso de shaders de computação, já que eu vinculo / desvinculoUAVs para buffers que estão vinculados aVS / PS mais tarde.

Eu perdi muitas horas de trabalho antes de detectar que essa religação era necessária. E eu acho que muitos codificadores não têm certeza e preferem desvincular e religar um pouco demais em vez de correr em uma armadilha similar.

Questão 1: Existem pelo menos algumas regras gerais sobre esse problema?

Questão 2: É possível que minhaShaderResourceViews obrigado aVS/PS são liberados pelo driver / núcleo DirectX porque eu ligarUAVs para os mesmos buffers antes da chamada de despacho CS (eu não desvinculoSRVs Eu mesmo)?

Questão 3: Eu nem mesmo definiVS/PS para null antes de usar os shaders de computação. Obras w / o problemas ainda me sinto constantemente incerto se ou não eu estou cavando minha próxima armadilha usando uma abordagem tão "preguiçosa".

questionAnswers(2)

yourAnswerToTheQuestion