Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/ir.c:
unsigned int src_idx, unsigned int write_mask, struct clip_cull_normaliser *normaliser)
+{
- unsigned int i, element_idx, component_idx, array_offset, handled_mask, mask_bit;
- struct vkd3d_shader_src_param *src_param = &ins->src[src_idx];
- struct vkd3d_shader_parser *parser = normaliser->parser;
- const struct clip_cull_normaliser_signature *signature;
- struct vkd3d_shader_register *reg = &src_param->reg;
- struct vsir_program *program = &parser->program;
- struct vkd3d_shader_dst_param *dst_param;
- struct vkd3d_shader_src_param *mov_src;
- switch (reg->type)
- {
case VKD3DSPR_INPUT:
/* Sysvals are not needed for domain shader inputs. */
if (parser->program.shader_version.type == VKD3D_SHADER_TYPE_DOMAIN)
Can this happen? Unless I'm missing something, it seems that for domain shaders `normaliser_signature_transform_clip_cull()` is never called, so `has_normalised_clip_cull` is never set and the normaliser returns before reaching here.