#include "fixtures/D3D12TestFixture.h" #include #include #include 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); }