Right, but the current behaviour is to initialise these with VKD3D_DATA_FLOAT. The existing code just does that in a more implicit/obfuscated way; let's make it clearer what's actually happening.
Okay, I turned the zero arguments into explicit VKD3D_DATA_FLOAT values.
That rule is news to me. :) And yeah, most vkd3d and wined3d code starts function names with the main structure/object the function is operating on. Actually, tangentially, we'll probably want to go with "vsir_dimension" instead of "vkd3d_shader_dimension" as well if we're going to rename it shortly anyway.
Okay, I renamed enum vkd3d_shader_dimension to vsir_dimension and changed the prefixes in the enum values.
Do we need to retain the memset() here?
That memset is applied over the whole vkd3d_shader_dst_param `dst` so it takes care of initializing other fields from `dst` and not just `dst.reg`.
Regardless of that, only `dst.reg` is used by spirv_compiler_emit_input_register(), so in theory the memset could be removed, but I think it is more futureproof to keep it.