Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
static void sm6_parser_emit_dx_load_input(struct sm6_parser *sm6, enum dx_intrinsic_opcode op, const struct sm6_value **operands, struct function_emission_state *state) { + bool is_control_point = op == DX_LOAD_OUTPUT_CONTROL_POINT; + bool is_patch_constant = op == DX_LOAD_PATCH_CONSTANT; struct vkd3d_shader_instruction *ins = state->ins; + const struct vkd3d_shader_dst_param *params; struct vkd3d_shader_src_param *src_param; const struct shader_signature *signature; - unsigned int row_index, column_index; + unsigned int i, row_index, column_index; const struct signature_element *e;
row_index = sm6_value_get_constant_uint(operands[0]); column_index = sm6_value_get_constant_uint(operands[2]); + assert(!is_control_point || !operands[3]->is_undefined); Is this validated anywhere?
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/768#note_67300