19 Dec
2022
19 Dec
'22
1:14 a.m.
Giving a closer look to patch 6/7, it doesn't quite look like I'd expect. We should be able to handle load-store-load-swizzle as well as constant-store-load-swizzle. I'd expect that we should be passing a (unsigned int) swizzle parameter to copy_propagation_transform_load() and its inferiors, which would be HLSL_SWIZZLE(X, Y, Z, W) for the current user. For that matter, we could probably factor out creating an array of sources, e.g. ``` struct copy_propagation_value *values[4]; for (...) values[i] = copy_propagation_get_values(state, values, var, start + swizzled_component(swizzle, i)); ``` and then pass that array to copy_propagation_compute_*_replacement(). -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/51#note_19824