The immediate constant will be bitcast to float because temp variables are float. When I tried using `VKD3D_DATA_FLOAT` for reg->data_type it didn't work, but it does now. Not sure what happened there.
Fork/join phases write patch constant output registers, so the maximum phase count is related to `MAX_REG_OUTPUT`. The largest possible count is one for each component of each output register, so I've expanded the array to that size.