typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE
{
UINT NodeMask;
D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC OutputStreamDesc;
SIZE_T MemoryPoolL0Size;
SIZE_T MemoryPoolL1Size;
} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE;
结构的各个成员含义如下:
- NodeMask: 一个位掩码,表示用于查询的硬件节点。
- OutputStreamDesc: D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC 结构,描述视频处理的输出流。
- MemoryPoolL0Size: 表示第一级内存池的大小。
- MemoryPoolL1Size: 表示第二级内存池的大小。
要使用该结构,首先填充相应的成员,然后使用 ID3D12Device::CheckFeatureSupport 函数来查询硬件是否支持特定的视频处理器大小。例如:
D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE videoProcessorSize = {};
videoProcessorSize.NodeMask = 0; // 可以根据需要设置节点掩码
videoProcessorSize.OutputStreamDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; // 设置输出流格式
HRESULT hr = pDevice->CheckFeatureSupport(
D3D12_FEATURE_VIDEO_PROCESSOR_SIZE,
&videoProcessorSize,
sizeof(D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE)
);
if (SUCCEEDED(hr))
{
// 查询成功,可以访问 videoProcessorSize.MemoryPoolL0Size 和 videoProcessorSize.MemoryPoolL1Size
}
else
{
// 查询失败,可能硬件不支持该功能或者发生其他错误
}
请注意,具体的使用方式和支持的功能取决于你的硬件和驱动程序的实现。最好参考 Microsoft 的文档和相关示例代码以获取详细的信息。
转载请注明出处:http://www.zyzy.cn/article/detail/26187/Win32 API/D3d12video.h/D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE