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); D3D12_ROOT_SIGNATURE_DESC *root_signature);
void vkd3d_shader_free_root_signature(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, 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 #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, 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; struct root_signature_writer_context context;
size_t total_size, chunk_size; size_t total_size, chunk_size;
HRESULT hr; 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(dxbc, 0, sizeof(*dxbc));
memset(&context, 0, sizeof(context)); memset(&context, 0, sizeof(context));

View File

@ -299,19 +299,14 @@ HRESULT WINAPI D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root
return E_INVALIDARG; 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) if (error_blob)
{ {
FIXME("Ignoring error blob %p.\n", error_blob); FIXME("Ignoring error blob %p.\n", error_blob);
*error_blob = NULL; *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); WARN("Failed to serialize root signature, hr %#x.\n", hr);
return hr; return hr;