Giovanni Mascellani (@giomasce) commented about include/vkd3d_shader.h:
*/ VKD3D_SHADER_API void vkd3d_shader_set_log_callback(PFN_vkd3d_log callback);
+/**
- Free the contents of a vkd3d_shader_dxbc_desc structure allocated by
- another vkd3d-shader function, such as vkd3d_shader_parse_dxbc().
- This function may free the \ref vkd3d_shader_dxbc_desc.sections member, but
- does not free the structure itself.
- \param dxbc The vkd3d_shader_dxbc_desc structure to free.
- \since 1.7
- */
+VKD3D_SHADER_API void vkd3d_shader_free_dxbc(struct vkd3d_shader_dxbc_desc *dxbc);
My understanding is that `free` usually means that the pointer itself is freed. Maybe this should be renamed to `destroy`?
Though I notice that this problem is also with `vkd3d_shader_free_shader_code()`, so maybe that's a ship that has already sailed.