diff --git a/libs/vkd3d-shader/fx.c b/libs/vkd3d-shader/fx.c index ae04ad58f..777548daf 100644 --- a/libs/vkd3d-shader/fx.c +++ b/libs/vkd3d-shader/fx.c @@ -4339,7 +4339,7 @@ static void fx_parse_fx_2_complex_state(struct fx_parser *parser) { fx_parse_fx_2_array_selector(parser); } - else + else if (state.assignment_type == FX_2_ASSIGNMENT_CODE_BLOB) { size = fx_parser_read_u32(parser); vkd3d_string_buffer_printf(&parser->buffer, "blob size %u\n", size); @@ -4347,6 +4347,11 @@ static void fx_parse_fx_2_complex_state(struct fx_parser *parser) fx_dump_blob(parser, data, size); fx_parser_skip(parser, align(size, 4)); } + else + { + fx_parser_error(parser, VKD3D_SHADER_ERROR_FX_INVALID_DATA, + "Unknown state assignment type %u.", state.assignment_type); + } } static void fx_2_parse(struct fx_parser *parser)