ID3D12GraphicsCommandList1::AtomicCopyBufferUINT-Methode (d3d12.h)

Atomar kopiert ein primäres Datenelement vom Typ UINT von einer Ressource in eine andere, zusammen mit optionalen abhängigen Ressourcen.

Diese "abhängigen Ressourcen" werden so benannt, da sie vom primären Datenelement abhängig sind, um sie zu finden. In der Regel ist das Schlüsselelement eine Adresse, ein Index oder ein anderes Handle, das sich indirekt auf eine oder mehrere abhängige Ressourcen bezieht.

Diese Funktion unterstützt ein primäres Datenelement vom Typ UINT (32 Bit). Eine andere Version dieser Funktion, AtomicCopyBufferUINT64, unterstützt ein primäres Datenelement vom Typ UINT64 (64 Bit).

Syntax

void AtomicCopyBufferUINT(
  [in] ID3D12Resource                       *pDstBuffer,
       UINT64                               DstOffset,
  [in] ID3D12Resource                       *pSrcBuffer,
       UINT64                               SrcOffset,
       UINT                                 Dependencies,
  [in] ID3D12Resource                       * const *ppDependentResources,
  [in] const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges
);

Parameter

[in] pDstBuffer

Typ: ID3D12Resource*

SAL: In

Die Ressource, in die das primäre UINT-Datenelement kopiert wird.

DstOffset

Typ: UINT64

Ein Offset in den Zielressourcenpuffer, der angibt, wo das primäre Datenelement in Bytes kopiert wird. Dieser Offset in Kombination mit der Basisadresse des Ressourcenpuffers muss zu einer Speicheradresse führen, die natürlich für UINT-Werte ausgerichtet ist.

[in] pSrcBuffer

Typ: ID3D12Resource*

SAL: In

Die Ressource, aus der das primäre UINT-Datenelement kopiert wird. Bei diesen Daten handelt es sich in der Regel um eine Adresse, einen Index oder ein anderes Handle, das Shadercode verwenden kann, um die neueste Version von vertraulichen Latenzinformationen zu suchen.

SrcOffset

Typ: UINT64

Ein Offset in den Quellressourcenpuffer, der angibt, wo das primäre Datenelement in Bytes kopiert wird. Dieser Offset in Kombination mit der Basisadresse des Ressourcenpuffers muss zu einer Speicheradresse führen, die natürlich für UINT-Werte ausgerichtet ist.

Dependencies

Typ: UINT

Die Anzahl der abhängigen Ressourcen.

[in] ppDependentResources

Typ: ID3D12Resource*

SAL: In_reads(Dependencies)

Ein Array von Ressourcen, die die abhängigen Elemente der Datennutzlast enthalten.

[in] pDependentSubresourceRanges

Typ: const D3D12_SUBRESOURCE_RANGE_UINT64*

SAL: In_reads(Dependencies)

Ein Array von Unterressourcenbereichen, die die abhängigen Elemente der Datennutzlast angeben. Diese Elemente werden vollständig aktualisiert, bevor das primäre Datenelement selbst atomar kopiert wird. Dadurch wird sichergestellt, dass der gesamte Vorgang logisch atomar ist; Das heißt, das primäre Datenelement bezieht sich nie auf eine unvollständige Datennutzlast.

Rückgabewert

Keine

Bemerkungen

Diese Methode wird in der Regel verwendet, um Ressourcen zu aktualisieren, bei denen die normale Renderingpipelinelatenz sich negativ auf die Benutzerfreundlichkeit auswirken kann. Beispielsweise kann eine Anwendung eine Ansichtsmatrix aus der neuesten Benutzereingabe berechnen (z. B. von den Sensoren eines head-mounted Displays) und diese Funktion verwenden, um diese Matrix in Befehlslisten zu aktualisieren und zu aktivieren, die bereits an die GPU verteilt wurden, um die wahrgenommene Latenz zwischen Eingabe und Rendering zu verringern.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d12.h
Bibliothek D3d12.lib
DLL D3d12.dll

Weitere Informationen

ID3D12GraphicsCommandList1