vkd3d: Implement support for D3D12_FEATURE_COMMAND_QUEUE_PRIORITY.

Signed-off-by: Conor McCarthy <conor.mccarthy.444@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Conor McCarthy 2020-05-22 16:27:18 +04:30 committed by Alexandre Julliard
parent 16882d1a50
commit b1712cbd48
2 changed files with 33 additions and 0 deletions

View File

@ -1661,6 +1661,13 @@ typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
} D3D12_FEATURE_DATA_SHADER_CACHE;
typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
{
D3D12_COMMAND_LIST_TYPE CommandListType;
UINT Priority;
BOOL PriorityForTypeIsSupported;
} D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
typedef enum D3D12_FEATURE
{
D3D12_FEATURE_D3D12_OPTIONS = 0,

View File

@ -2788,6 +2788,32 @@ static HRESULT STDMETHODCALLTYPE d3d12_device_CheckFeatureSupport(ID3D12Device *
return S_OK;
}
case D3D12_FEATURE_COMMAND_QUEUE_PRIORITY:
{
D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY *data = feature_data;
if (feature_data_size != sizeof(*data))
{
WARN("Invalid size %u.\n", feature_data_size);
return E_INVALIDARG;
}
switch (data->CommandListType)
{
case D3D12_COMMAND_LIST_TYPE_DIRECT:
case D3D12_COMMAND_LIST_TYPE_COMPUTE:
case D3D12_COMMAND_LIST_TYPE_COPY:
data->PriorityForTypeIsSupported = FALSE;
TRACE("Command list type %#x, priority %u, supported %#x.\n",
data->CommandListType, data->Priority, data->PriorityForTypeIsSupported);
return S_OK;
default:
FIXME("Unhandled command list type %#x.\n", data->CommandListType);
return E_INVALIDARG;
}
}
default:
FIXME("Unhandled feature %#x.\n", feature);
return E_NOTIMPL;