In Vulkan, you can query each physical device (adapter) for the queue types it supports and the number of queues of each type. What is the equivalent in D3D12? I see lots of apparently conflicting information on MSDN and the rest of the web. Sometimes, it seems D3D12 supports one queue of each type, and other times, it seems it supports more, particularly for compute and copy queues. Are you just supposed to call ID3D12Device::CreateCommandQueue until it fails, like how you enumerate adapters by calling IDXGIFactory1::EnumAdapters1? Do you create any number of logical queues of each type and let the driver handle scheduling them to the actual physical queues? It's all very confusing.
↧