Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
else if (!j)
{
e->semantic_index = index;
}
else if (index != e->semantic_index + j)
{
WARN("Semantic index %u for row %u is not of an incrementing sequence.\n", index, j);
vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_INVALID_SIGNATURE,
"Signature element semantic index %u for row %u is not of an incrementing sequence.", index, j);
}
}
- }
- vkd3d_free(s->elements);
- s->elements = elements;
- s->element_count = operand_count;
This means that the DXBC signature is replaced with the DXIL signature as far as the parser is concerned. That means that the VSIR code (and, say, the SPIR-V code downstream) is generated from a potentially different signature than what is returned by `vkd3d_shader_scan()`. I guess that could be confusing for the client.