Suivi des risques ou ressources d’un pool de vignettes
Pour les ressources non en mosaïques, Direct3D peut empêcher certaines conditions de danger pendant le rendu, mais étant donné que le suivi des risques se ferait au niveau de la vignette pour les ressources en mosaïque, le suivi des conditions de risque pendant le rendu des ressources en mosaïques peut être trop coûteux.
Par exemple, pour les ressources non en mosaïque, le runtime ne permet pas à une sous-ressource donnée d’être liée en tant qu’entrée (telle qu’un ShaderResourceView) et en tant que sortie (telle qu’un RenderTargetView) en même temps. Si un tel cas est rencontré, le runtime dissocie l’entrée. Cette surcharge de suivi dans le runtime est peu coûteuse et est effectuée au niveau de la sous-ressource. L’un des avantages de cette surcharge de suivi est de réduire les risques que les applications dépendent accidentellement de l’ordre d’exécution du nuanceur matériel. L’ordre d’exécution du nuanceur matériel peut varier si ce n’est pas sur une unité de traitement graphique (GPU) donnée, alors certainement sur différents GPU.
Le suivi de la façon dont les ressources sont liées peut être trop coûteux pour les ressources en mosaïque, car le suivi est au niveau d’une vignette. De nouveaux problèmes se produisent, tels que la validation éventuelle des tentatives de rendu dans un RenderTargetView avec une vignette mappée simultanément à plusieurs zones de la surface. S’il s’avère que ce suivi des risques par vignette est trop coûteux pour le runtime, dans l’idéal, cela serait au moins une option dans la couche de débogage.
Une application doit informer le pilote d’affichage lorsqu’elle a émis une opération d’écriture ou de lecture sur une ressource en mosaïques qui fait référence à la mémoire du pool de vignettes qui sera également référencée par des ressources en mosaïque distinctes dans les prochaines opérations de lecture ou d’écriture qu’elle attend la première opération avant que les opérations suivantes ne puissent commencer. Pour plus d’informations sur cette condition, consultez les remarques id3D11DeviceContext2::TiledResourceBarrier .
Rubriques connexes