mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader: Implement parsing of root signature 1.1.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
committed by
Alexandre Julliard
parent
8df50592f6
commit
f9b9ae8cc7
@@ -344,6 +344,41 @@ void vkd3d_shader_free_root_signature(struct vkd3d_root_signature_desc *root_sig
|
||||
memset(root_signature, 0, sizeof(*root_signature));
|
||||
}
|
||||
|
||||
void vkd3d_shader_free_versioned_root_signature(struct vkd3d_versioned_root_signature_desc *desc)
|
||||
{
|
||||
struct vkd3d_root_signature_desc1 *root_signature;
|
||||
unsigned int i;
|
||||
|
||||
if (!desc->version)
|
||||
return;
|
||||
|
||||
if (desc->version == VKD3D_ROOT_SIGNATURE_VERSION_1_0)
|
||||
{
|
||||
vkd3d_shader_free_root_signature(&desc->u.v_1_0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (desc->version != VKD3D_ROOT_SIGNATURE_VERSION_1_1)
|
||||
{
|
||||
FIXME("Unknown version %#x.\n", desc->version);
|
||||
return;
|
||||
}
|
||||
|
||||
root_signature = &desc->u.v_1_1;
|
||||
|
||||
for (i = 0; i < root_signature->parameter_count; ++i)
|
||||
{
|
||||
const struct vkd3d_root_parameter1 *parameter = &root_signature->parameters[i];
|
||||
|
||||
if (parameter->parameter_type == VKD3D_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE)
|
||||
vkd3d_free((void *)parameter->u.descriptor_table.descriptor_ranges);
|
||||
}
|
||||
vkd3d_free((void *)root_signature->parameters);
|
||||
vkd3d_free((void *)root_signature->static_samplers);
|
||||
|
||||
memset(root_signature, 0, sizeof(*root_signature));
|
||||
}
|
||||
|
||||
int vkd3d_shader_parse_input_signature(const struct vkd3d_shader_code *dxbc,
|
||||
struct vkd3d_shader_signature *signature)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user