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 |