D3D12_RESOURCE_DESC text_resource_desc = {
D3D12_RESOURCE_DIMENSION_TEXTURE3D,
0,
width, // 256 aligned
height, // 512 aligned
32,
0,
DXGI_FORMAT_R32_FLOAT,
{ // DXGI_SAMPLE_DESC
1, // Count
0 // Quality
},
D3D12_TEXTURE_LAYOUT_UNKNOWN,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET
};
D3D12_RESOURCE_ALLOCATION_INFO resalocInfo = device->GetResourceAllocationInfo(
0, // for single adapter(no sub-adapters)
1, // num of resource descriptors
&text_resource_desc
);
D3D12_HEAP_DESC heapDesc = {};
heapDesc.SizeInBytes = resalocInfo.SizeInBytes;
heapDesc.Properties = device->GetCustomHeapProperties(1, D3D12_HEAP_TYPE_DEFAULT);
heapDesc.Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT;
heapDesc.Flags = D3D12_HEAP_FLAG_NONE;
Microsoft::WRL::ComPtr<ID3D12Heap> heap;
if (FAILED(device->CreateHeap( &heapDesc, IID_PPV_ARGS(&heap) ))) {
std::cout << "Failed to create 3D heap" << std::endl; // <--
}
else {
std::cout << "Successfully created 3D heap" << std::endl;
};