Share via


ID3D12GraphicsCommandList1::SetViewInstanceMask-Methode (d3d12.h)

Legen Sie eine Maske fest, die steuert, welche Ansichtsinstanzen für nachfolgende Ziehungen aktiviert sind.

Syntax

void SetViewInstanceMask(
  [in] UINT Mask
);

Parameter

[in] Mask

Typ: UINT

Eine Maske, die angibt, welche Ansichten aktiviert oder deaktiviert sind. Wenn bit i, beginnend mit dem kleinsten Bit, festgelegt ist, ist view instance i aktiviert.

Rückgabewert

Keine

Bemerkungen

Die Ansicht instance Maske wirkt sich nur auf PsOs aus, die ansichts- instance Maskierung durch Angabe des D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING-Flags während der Erstellung deklarieren. Der Versuch, ein PSO zu erstellen, das ansichts- instance Maskierung deklariert, schlägt bei Adaptern fehl, die die Ansichtsrefinanzierung nicht unterstützen.

Die Ansicht instance Maske ist standardmäßig auf 0 festgelegt, wodurch alle Ansichten deaktiviert werden. Dies erzwingt, dass Anwendungen, die ansichts- instance Maskierung deklarieren, explizit die zu aktivierenden Ansichten auswählen. Andernfalls wird nichts gerendert. Wenn die Ansicht instance Maske standardmäßig alle Ansichten aktiviert hat, erinnert sich die Anwendung möglicherweise nicht daran, nicht verwendete Ansichten zu deaktivieren, was zu Leistungseinbußen aufgrund verschwendeter Arbeit führt.

Bundles erben ihre Ansicht instance Maske nicht von ihrem Aufrufer, sondern standardmäßig 0. Dies liegt daran, dass die Maskeneinstellung bekannt sein muss, wenn das Bundle aufgezeichnet wird, wenn sie sich darauf auswirkt, wie eine Implementierung zeichnet. Die Ansicht instance Maske, die von einem Bündel festgelegt wird, bleibt jedoch nach Abschluss des Bundles für den Aufrufer erhalten. Diese Vererbungssemantik ähnelt der von PSOs.

Es werden keine Shadercodepfade ausgeführt, die von SV_ViewID abhängig sind, in jeder Shaderphase für Ansichtsinstanzen, die maskiert sind, und es wird kein Clipping, keine Viewportverarbeitung oder Rasterisierung ausgeführt. Implementierungen, die die Maske während des Renderns untersuchen, können eine kleine Leistungseinbuße gegenüber PSOs verursachen, die keine Ansicht instance Maskierung deklarieren, aber in der Regel kann der Nachteil durch die Leistungseinsparungen überwunden werden, die sich aus dem Überspringen der Arbeit ergeben, die den maskierten Ansichten zugeordnet ist. Je nach Häufigkeit und Umfang der übersprungenen Arbeit können die Leistungssteigerungen erheblich sein.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d12.h

Weitere Informationen

ID3D12GraphicsCommandList1