Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/ir.c:
+ } + + /* discard_nz tmp.x */ + + ins = texkill_ins + 1 + components_read; + if (!(vsir_instruction_init_with_params(parser, ins, &texkill_ins->location, VKD3DSIH_DISCARD, 0, 1))) + return VKD3D_ERROR_OUT_OF_MEMORY; + ins->flags = VKD3D_SHADER_CONDITIONAL_OP_NZ; + + vsir_register_init(&ins->src[0].reg, VKD3DSPR_TEMP, VKD3D_DATA_INT, 1); + ins->src[0].reg.dimension = VSIR_DIMENSION_VEC4; + ins->src[0].reg.idx[0].offset = tmp_idx; + ins->src[0].swizzle = VKD3D_SHADER_SWIZZLE(X, X, X, X); + + /* Make the original instruction no-op */ + vkd3d_shader_instruction_make_nop(texkill_ins); It's not a big problem, but why don't you overwrite the original instruction instead of NOPping it?
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/514#note_57882