diff --git a/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d-shader/vkd3d_shader_main.c index 343e2633a..6ef16e302 100644 --- a/libs/vkd3d-shader/vkd3d_shader_main.c +++ b/libs/vkd3d-shader/vkd3d_shader_main.c @@ -808,8 +808,10 @@ static enum vkd3d_result vsir_parse(const struct vkd3d_shader_compile_info *comp return ret; } - if (compile_info->target_type != VKD3D_SHADER_TARGET_NONE) - ret = vsir_program_transform_early(program, config_flags, compile_info, message_context); + if (compile_info->target_type != VKD3D_SHADER_TARGET_NONE + && (ret = vsir_program_transform_early(program, config_flags, compile_info, message_context)) < 0) + vsir_program_cleanup(program); + return ret; }