I didn't review this yet, but this change did catch my eye:
diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h index 86ffb9d5..3b106e68 100644 --- a/include/vkd3d_shader.h +++ b/include/vkd3d_shader.h @@ -1444,6 +1444,11 @@ struct vkd3d_shader_signature_element unsigned int used_mask; /** Minimum interpolation precision. */ enum vkd3d_shader_minimum_precision min_precision; + /** + * Register count. A value of 0 or 1 indicates \a register_index is the + * only register. Values greater than 4 are invalid. \since 1.7 + */ + unsigned int register_count; }; /**
You can't do that; the vkd3d_shader_signature_element structure is part of the public API.
Without having looked much at the contents, I notice patch 1/4 and 3/4 are quite large; if those could be split that would be much appreciated.