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

yos*_*o78 2 directx msdn units-of-measurement visual-c++ directx-12

我正在尝试在 DirectX12 中使用CreateHeapand 。PlacedResources然而,对于 CreateHeap 来说,它需要一个D3D12_HEAP_DESC“应用程序应该传递SizeInBytes(的字段D3D12_HEAP_DESC)值,该值是有效对齐的倍数”的地方。然后他们去显示一个对齐D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT #defined as 64KB.,其中说 64KB 是对齐。

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

Chu*_*urn 6

SI 单位的“Kibi”与“Kilo”差异非常重要,特别是对于固定存储大小而言。也就是说,在编程规范中,“KB”几乎总是表示“1024 字节”。

如果您查看标d3d12.h头,您将看到 的值为D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENTbase-2:

#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT      ( 65536 )
Run Code Online (Sandbox Code Playgroud)