ID3D12Device4::GetResourceAllocationInfo1(UINT,UINT,constD3D12_RESOURCE_DESC*,D3D12_RESOURCE_ALLOCATION_INFO1*)-Methode (d3d12.h)
Ruft umfassende Informationen über die Größe und Ausrichtung des Speichers ab, die für eine Sammlung von Ressourcen auf diesem Adapter erforderlich sind. Siehe auch ID3D12Device::GetResourceAllocationInfo.
Zusätzlich zu den von der Methode zurückgegebenen D3D12_RESOURCE_ALLOCATION_INFO gibt diese Version auch ein Array von D3D12_RESOURCE_ALLOCATION_INFO1 Strukturen zurück, die zusätzliche Details für jede ressourcenbeschreibung bereitstellen, die als Eingabe übergeben wird. Siehe pResourceAllocationInfo1 Parameter.
Syntax
D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1(
[in] UINT visibleMask,
[in] UINT numResourceDescs,
[in] const D3D12_RESOURCE_DESC *pResourceDescs,
[out] D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1
);
Parameter
[in] visibleMask
Typ: UINT-
Legen Sie für den Einzel-GPU-Vorgang diesen Wert auf 0 fest. Wenn mehrere GPU-Knoten vorhanden sind, legen Sie Bits fest, um die Knoten (die physischen Adapter des Geräts) zu identifizieren. Jedes Bit in der Maske entspricht einem einzelnen Knoten. Siehe auch Multiadaptersysteme.
[in] numResourceDescs
Typ: UINT-
Die Anzahl der Ressourcendeskriptoren im pResourceDescs Arrays. Dies ist auch die Größe (die Anzahl der Elemente in) pResourceAllocationInfo1.
[in] pResourceDescs
Typ: const D3D12_RESOURCE_DESC*
Ein Array von D3D12_RESOURCE_DESC Strukturen, die die Ressourcen zum Abrufen von Informationen beschrieben haben.
[out] pResourceAllocationInfo1
Typ: D3D12_RESOURCE_ALLOCATION_INFO1*
Ein Array von D3D12_RESOURCE_ALLOCATION_INFO1 Strukturen, das zusätzliche Details für jede Ressourcenbeschreibung enthält, die als Eingabe übergeben wird. Dadurch wird es für Ihre Anwendung einfacher, einen Heap für mehrere Ressourcen zuzuweisen, und ohne manuelles Berechnen von Offsets für die einzelnen Ressourcen.
Rückgabewert
Typ: D3D12_RESOURCE_ALLOCATION_INFO
Eine D3D12_RESOURCE_ALLOCATION_INFO Struktur, die Informationen zum Videospeicher bereitstellt, der für das angegebene Array von Ressourcen zugeordnet ist.
Bemerkungen
Wenn Sie CreatePlacedResource-verwenden, muss Ihre Anwendung GetResourceAllocationInfo- verwenden, um die Größe und Ausrichtung der Texturressourcen zu verstehen. Die Ergebnisse dieser Methode variieren je nach Adapter und müssen für diese Adapter- und Treiberversion als einzigartig behandelt werden.
Ihre Anwendung kann die Ausgabe von GetResourceAllocationInfo nicht verwenden, um verpackte Mip-Eigenschaften von Texturen zu verstehen. Um die gepackten Mip-Eigenschaften von Texturen zu verstehen, muss Ihre Anwendung GetResourceTilingverwenden.
Texturressourcengrößen unterscheiden sich erheblich von den Informationen, die von GetResourceTilingzurückgegeben werden, da einige Adapterarchitekturen zusätzlichen Arbeitsspeicher für Texturen zuweisen, um die effektive Bandbreite während gängiger Renderingszenarien zu verringern. Dies schließt auch Texturen ein, die Einschränkungen für ihre Texturlayouts aufweisen oder standardisierte Texturlayouts aufweisen. Dieser zusätzliche Arbeitsspeicher kann nicht sparsam zugeordnet oder von einer Anwendung mithilfe von CreateReservedResource und UpdateTileMappingsneu zugeordnet werden, sodass es nicht von GetResourceTilinggemeldet wird.
Ihre Anwendung kann GetResourceAllocationInfo für Pufferressourcen (D3D12_RESOURCE_DIMENSION_BUFFER) verwenden. Puffer haben die gleiche Größe auf allen Adaptern, bei denen es sich lediglich um das kleinste Vielfache von 64 KB handelt, das größer oder gleich D3D12_RESOURCE_DESC::Widthist.
Wenn mehrere Ressourcenbeschreibungen übergeben werden, werden der C++-Algorithmus zum Berechnen einer Strukturgröße und -ausrichtung verwendet. Beispielsweise meldet ein Dreielementarray mit zwei winzigen 64 KB ausgerichteten Ressourcen und einer winzigen 4 MB ausgerichteten Ressource unterschiedliche Größen basierend auf der Reihenfolge des Arrays. Wenn sich die 4 MB ausgerichtete Ressource in der Mitte befindet, beträgt die resultierende Größe 12 MB. Andernfalls beträgt die resultierende Größe 8 MB. Die zurückgegebene Ausrichtung wäre immer 4 MB, da sie die Obermenge aller Ausrichtungen im Ressourcenarray ist.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10 Build 20348 |
mindestens unterstützte Server- | Windows 10 Build 20348 |
Zielplattform- | Fenster |
Header- | d3d12.h |
Library | d3d12.lib |
DLL- | d3d12.dll |