libs/vkd3d-shader: Add version argument to vkd3d_shader_serialize_root_signature().

This commit is contained in:
Józef Kucia 2017-10-10 16:57:36 +02:00
parent f4cfebcd7e
commit 18b285328e
3 changed files with 16 additions and 10 deletions

View File

@ -116,8 +116,13 @@ HRESULT vkd3d_shader_parse_root_signature(const struct vkd3d_shader_code *dxbc,
D3D12_ROOT_SIGNATURE_DESC *root_signature);
void vkd3d_shader_free_root_signature(D3D12_ROOT_SIGNATURE_DESC *root_signature);
enum vkd3d_root_signature_version
{
VKD3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
};
HRESULT vkd3d_shader_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *root_signature,
struct vkd3d_shader_code *dxbc);
enum vkd3d_root_signature_version version, struct vkd3d_shader_code *dxbc);
#define VKD3D_SHADER_MAX_UNORDERED_ACCESS_VIEWS 8

View File

@ -2568,13 +2568,19 @@ static HRESULT shader_write_root_signature(struct root_signature_writer_context
}
HRESULT vkd3d_shader_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *root_signature,
struct vkd3d_shader_code *dxbc)
enum vkd3d_root_signature_version version, struct vkd3d_shader_code *dxbc)
{
struct root_signature_writer_context context;
size_t total_size, chunk_size;
HRESULT hr;
TRACE("root_signature %p, dxbc %p.\n", root_signature, dxbc);
TRACE("root_signature %p, version %#x, dxbc %p.\n", root_signature, version, dxbc);
if (version != VKD3D_ROOT_SIGNATURE_VERSION_1_0)
{
FIXME("Root signature version %#x not supported.\n", version);
return E_NOTIMPL;
}
memset(dxbc, 0, sizeof(*dxbc));
memset(&context, 0, sizeof(context));

View File

@ -299,19 +299,14 @@ HRESULT WINAPI D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root
return E_INVALIDARG;
}
if (version != D3D_ROOT_SIGNATURE_VERSION_1_0)
{
FIXME("Root signature version %#x is not supported.\n", version);
return E_NOTIMPL;
}
if (error_blob)
{
FIXME("Ignoring error blob %p.\n", error_blob);
*error_blob = NULL;
}
if (FAILED(hr = vkd3d_shader_serialize_root_signature(root_signature_desc, &dxbc)))
if (FAILED(hr = vkd3d_shader_serialize_root_signature(root_signature_desc,
(enum vkd3d_root_signature_version)version, &dxbc)))
{
WARN("Failed to serialize root signature, hr %#x.\n", hr);
return hr;