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.
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/564#note_62316