D3D12 CreateHeap 对齐,MSDN 使用 1024 还是 1000 来定义 KB

D3D12 CreateHeap alignment, Does MSDN use 1024 or 1000 for its definition of KB

我正在尝试使用 CreateHeap and PlacedResources in DirectX12. However for CreateHeap it requires a D3D12_HEAP_DESC,其中显示“应用程序应传递 SizeInBytesD3D12_HEAP_DESC 的字段)值,这些值是有效对齐的倍数”。然后他们去显示对齐 D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT #defined as 64KB.,其中说 64KB 是对齐。

Microsoft DirectX12 是否使用 65536 字节作为其对 64KB 或 64000 字节的定义(因此基本上 1024 或 1000 字节是微软对 KB 的定义)?我不想浪费任何字节,而且我不知道在哪里可以找到这些类型的微软单位的定义。正如维基百科显示 1024 KB 作为 KiloByte 的遗留单位,微软标准是否最新是个问题。

SI 单位的“Kibi”与“Kilo”差异很重要,尤其是 fixed-storage 尺寸。也就是说,在编程规范中,“KB”几乎总是表示“1024 字节”。

如果您查看 d3d12.h header,您会看到 D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT 的值是 base-2:

#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT      ( 65536 )