#include "fixtures/D3D12TestFixture.h" #include "XCEngine/RHI/D3D12/D3D12DescriptorHeap.h" using namespace XCEngine::RHI; TEST_F(D3D12TestFixture, Views_Create_RTVDescriptorHeap) { D3D12DescriptorHeap heap; ASSERT_TRUE(heap.Initialize(GetDevice()->GetDevice(), DescriptorHeapType::RTV, 1, false)); CPUDescriptorHandle handle = heap.GetCPUDescriptorHandle(0); EXPECT_NE(handle.ptr, 0); } TEST_F(D3D12TestFixture, Views_Create_DSVDescriptorHeap) { D3D12DescriptorHeap heap; ASSERT_TRUE(heap.Initialize(GetDevice()->GetDevice(), DescriptorHeapType::DSV, 1, false)); CPUDescriptorHandle handle = heap.GetCPUDescriptorHandle(0); EXPECT_NE(handle.ptr, 0); } TEST_F(D3D12TestFixture, Views_Create_CBVDescriptorHeap) { D3D12DescriptorHeap heap; ASSERT_TRUE(heap.Initialize(GetDevice()->GetDevice(), DescriptorHeapType::CBV_SRV_UAV, 1, true)); CPUDescriptorHandle handle = heap.GetCPUDescriptorHandle(0); EXPECT_NE(handle.ptr, 0); } TEST_F(D3D12TestFixture, Views_Get_RTVDescriptorHandleIncrement) { UINT rtvSize = GetDevice()->GetDescriptorHandleIncrementSize(DescriptorHeapType::RTV); D3D12DescriptorHeap heap; ASSERT_TRUE(heap.Initialize(GetDevice()->GetDevice(), DescriptorHeapType::RTV, 4, false)); CPUDescriptorHandle handle1 = heap.GetCPUDescriptorHandle(0); CPUDescriptorHandle handle2 = heap.GetCPUDescriptorHandle(1); EXPECT_EQ(handle2.ptr - handle1.ptr, rtvSize); }