vkd3d-shader/msl: Slightly improve the error messages for unspecified descriptor bindings.

This also makes them consistent with the ones used by the GLSL backend.
This commit is contained in:
Henri Verbeet
2025-05-26 14:10:45 +02:00
parent 6a93c503cd
commit fadcbf3eeb
Notes: Henri Verbeet 2025-06-05 16:18:34 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1535

View File

@@ -365,10 +365,12 @@ static enum msl_data_type msl_print_register_name(struct vkd3d_string_buffer *bu
vkd3d_string_buffer_printf(buffer, "<unhandled register %#x>", reg->type); vkd3d_string_buffer_printf(buffer, "<unhandled register %#x>", reg->type);
return MSL_DATA_UNION; return MSL_DATA_UNION;
} }
/* FIXME: This should use vkd3d_shader_find_descriptor() to
* find the resource index/space from the resource ID. */
if (!(binding = msl_get_cbv_binding(gen, 0, reg->idx[1].offset))) if (!(binding = msl_get_cbv_binding(gen, 0, reg->idx[1].offset)))
{ {
msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_BINDING_NOT_FOUND, msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_BINDING_NOT_FOUND,
"Cannot finding binding for CBV register %u.", reg->idx[0].offset); "No descriptor binding specified for CBV %u.", reg->idx[0].offset);
vkd3d_string_buffer_printf(buffer, "<unhandled register %#x>", reg->type); vkd3d_string_buffer_printf(buffer, "<unhandled register %#x>", reg->type);
return MSL_DATA_UNION; return MSL_DATA_UNION;
} }
@@ -780,7 +782,7 @@ static void msl_ld(struct msl_generator *gen, const struct vkd3d_shader_instruct
if (!(binding = msl_get_srv_binding(gen, resource_space, resource_idx, resource_type))) if (!(binding = msl_get_srv_binding(gen, resource_space, resource_idx, resource_type)))
{ {
msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_BINDING_NOT_FOUND, msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_BINDING_NOT_FOUND,
"Cannot finding binding for SRV register %u index %u space %u.", "No descriptor binding specified for SRV %u (index %u, space %u).",
resource_id, resource_idx, resource_space); resource_id, resource_idx, resource_space);
return; return;
} }