Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
table_idx = sm6->metadata_counts[idx];
m = &table[table_idx];
switch (record->code)
{
case METADATA_NAMED_NODE:
if (!name)
{
WARN("Named node has no name.\n");
vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_INVALID_METADATA,
"A metadata named node has no name.");
return VKD3D_ERROR_INVALID_SHADER;
}
m = &sm6->named_metadata[sm6->named_metadata_count].value;
Is it intended that creating a named node leaves a hole in the table we're processing, and instead puts the named node in another table which collects all the named nodes?