Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/tpf.c:
+ { + { HLSL_MODIFIER_CENTROID | HLSL_MODIFIER_NOPERSPECTIVE, VKD3DSIM_LINEAR_NOPERSPECTIVE_CENTROID }, + { HLSL_MODIFIER_NOPERSPECTIVE, VKD3DSIM_LINEAR_NOPERSPECTIVE }, + { HLSL_MODIFIER_CENTROID, VKD3DSIM_LINEAR_CENTROID }, + }; + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(modes); ++i) + { + if ((var->storage_modifiers & modes[i].modifiers) == modes[i].modifiers) + { + mode = modes[i].mode; + break; + } + } + } This looks longer and less readable than what you'd get by simply chaining the three cases with `else if`. I can live with it, though.
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/358#note_46322