63 lines
2.5 KiB
C++
63 lines
2.5 KiB
C++
#include "fixtures/D3D12TestFixture.h"
|
|
#include <d3d12.h>
|
|
#include <dxgi1_4.h>
|
|
#include <windows.h>
|
|
|
|
TEST_F(D3D12TestFixture, Device_Create_Success) {
|
|
ASSERT_NE(GetDevice(), nullptr);
|
|
}
|
|
|
|
TEST_F(D3D12TestFixture, Device_Get_CommandQueue) {
|
|
ASSERT_NE(GetCommandQueue(), nullptr);
|
|
}
|
|
|
|
TEST_F(D3D12TestFixture, Device_Get_FeatureLevel) {
|
|
static const D3D_FEATURE_LEVEL requestedLevels[] = { D3D_FEATURE_LEVEL_12_0 };
|
|
D3D12_FEATURE_DATA_FEATURE_LEVELS featureLevels = {};
|
|
featureLevels.NumFeatureLevels = 1;
|
|
featureLevels.pFeatureLevelsRequested = requestedLevels;
|
|
|
|
HRESULT hr = GetDevice()->CheckFeatureSupport(D3D12_FEATURE_FEATURE_LEVELS, &featureLevels, sizeof(featureLevels));
|
|
ASSERT_HRESULT_SUCCEEDED(hr);
|
|
EXPECT_EQ(featureLevels.MaxSupportedFeatureLevel, D3D_FEATURE_LEVEL_12_0);
|
|
}
|
|
|
|
TEST_F(D3D12TestFixture, Device_Get_DescriptorHandleIncrementSize) {
|
|
UINT cbvSrvUavSize = GetDevice()->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV);
|
|
EXPECT_GT(cbvSrvUavSize, 0);
|
|
|
|
UINT samplerSize = GetDevice()->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER);
|
|
EXPECT_GT(samplerSize, 0);
|
|
|
|
UINT rtvSize = GetDevice()->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV);
|
|
EXPECT_GT(rtvSize, 0);
|
|
|
|
UINT dsvSize = GetDevice()->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_DSV);
|
|
EXPECT_GT(dsvSize, 0);
|
|
}
|
|
|
|
TEST_F(D3D12TestFixture, Device_Get_ShaderModelSupport) {
|
|
D3D12_FEATURE_DATA_SHADER_MODEL shaderModel = {};
|
|
shaderModel.HighestShaderModel = D3D_SHADER_MODEL_6_0;
|
|
|
|
HRESULT hr = GetDevice()->CheckFeatureSupport(D3D12_FEATURE_SHADER_MODEL, &shaderModel, sizeof(shaderModel));
|
|
ASSERT_HRESULT_SUCCEEDED(hr);
|
|
EXPECT_GE(shaderModel.HighestShaderModel, D3D_SHADER_MODEL_6_0);
|
|
}
|
|
|
|
TEST_F(D3D12TestFixture, Device_Get_ResourceBindingTier) {
|
|
D3D12_FEATURE_DATA_D3D12_OPTIONS options = {};
|
|
|
|
HRESULT hr = GetDevice()->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS, &options, sizeof(options));
|
|
ASSERT_HRESULT_SUCCEEDED(hr);
|
|
EXPECT_GE(options.ResourceBindingTier, D3D12_RESOURCE_BINDING_TIER_1);
|
|
}
|
|
|
|
TEST_F(D3D12TestFixture, Device_Get_TiledResourcesTier) {
|
|
D3D12_FEATURE_DATA_D3D12_OPTIONS options = {};
|
|
|
|
HRESULT hr = GetDevice()->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS, &options, sizeof(options));
|
|
ASSERT_HRESULT_SUCCEEDED(hr);
|
|
EXPECT_GE(options.TiledResourcesTier, D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED);
|
|
}
|