ID3D12GraphicsCommandList1::AtomicCopyBufferUINT64-Methode (d3d12.h)
Kopiert ein primäres Datenelement vom Typ UINT64 atomar aus 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ängen, um sie zu finden. In der Regel ist das Schlüsselelement eine Adresse, ein Index oder ein anderes Handle, das indirekt auf eine oder mehrere abhängige Ressourcen verweist.
Diese Funktion unterstützt ein primäres Datenelement vom Typ UINT64 (64 Bit). Eine andere Version dieser Funktion, AtomicCopyBufferUINT, unterstützt ein primäres Datenelement vom Typ UINT (32 Bit).
Syntax
void AtomicCopyBufferUINT64(
[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 UINT64-Datenelement kopiert wird.
DstOffset
Typ: UINT64
Ein Offset in den Zielressourcenpuffer, der angibt, wohin 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 UINT64-Werte ausgerichtet ist.
[in] pSrcBuffer
Typ: ID3D12Resource*
SAL: In
Die Ressource, aus der das primäre UINT64-Datenelement kopiert wird. Bei diesen Daten handelt es sich in der Regel um eine Adresse, einen Index oder ein anderes Handle, mit dem Shadercode die neueste Version von latenzsensiblen Informationen suchen kann.
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 UINT64-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 niemals auf eine unvollständige Datennutzlast.
Rückgabewert
Keine
Bemerkungen
Diese Methode wird in der Regel verwendet, um Ressourcen zu aktualisieren, deren normale Renderingpipelinelatenz sich negativ auf die Benutzererfahrung 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 reduzieren.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | d3d12.h |
Bibliothek | D3d12.lib |
DLL | D3d12.dll |