libs/vkd3d-shader: Implement root signature parsing.

This commit is contained in:
Józef Kucia
2017-06-27 13:16:47 +02:00
parent d220ae4bfb
commit 3f03cd1ec8
5 changed files with 285 additions and 4 deletions

View File

@@ -88,3 +88,20 @@ void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *shader_code)
vkd3d_free((void *)shader_code->code);
}
void vkd3d_shader_free_root_signature(D3D12_ROOT_SIGNATURE_DESC *root_signature)
{
unsigned int i;
for (i = 0; i < root_signature->NumParameters; ++i)
{
const D3D12_ROOT_PARAMETER *parameter = &root_signature->pParameters[i];
if (parameter->ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE)
vkd3d_free((void *)parameter->u.DescriptorTable.pDescriptorRanges);
}
vkd3d_free((void *)root_signature->pParameters);
vkd3d_free((void *)root_signature->pStaticSamplers);
memset(root_signature, 0, sizeof(*root_signature));
}