2017-03-29 1 views
1

Je copie des données dans mes tampons D3D12_HEAP_TYPE_DEFAULT à partir de mes tampons intermédiaires D3D12_HEAP_TYPE_UPLOAD en utilisant la file d'attente D3D12_COMMAND_LIST_TYPE_COPY. Une fois la copie effectuée, je dois redéfinir la ressource sur D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER. Mais la file d'attente de copie ne prend pas en charge la transition vers cet état. Comment puis-je le faire correctement?Comment la ressource de transition a-t-elle simplement été copiée dans la file d'attente de copie dans un état que la file d'attente de copie ne prend pas en charge?

Dois-je insérer une clôture juste après la copie, puis attendre cette clôture sur la file d'attente graphique et y effectuer une transition, ce n'est pas une option vraiment confortable. D'autres possibilités?

Répondre

0

Si vous utilisez une liste de commandes de copie dans la file d'attente de copie, votre ressource retournera au commun comme décrit dans la citation. Vous pouvez alors passer de common à vertex et constant buffer sur le site d'utilisation de façon explicite, ou ne rien faire parce que common va se promouvoir de toute façon.

Les ressources suivantes se décomposeront lorsqu'un ExecuteCommandLists opération est terminée sur le GPU: Ressources accédés sur une copie file d'attente , ou le tampon des ressources sur tout type de file d'attente ou des ressources de texture sur tout type de file d'attente qui ont le Ensemble de fanions D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS.