Module: vkd3d Branch: master Commit: f5c6f2ea0edcbab979d9ec003eaf8b540aa6c266 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=f5c6f2ea0edcbab979d9ec00...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Oct 6 17:11:46 2021 +0200
vkd3d-shader: Introduce vkd3d_shader_parser_error().
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/vkd3d-shader/dxbc.c | 18 +++--------------- libs/vkd3d-shader/vkd3d_shader_main.c | 12 ++++++++++++ libs/vkd3d-shader/vkd3d_shader_private.h | 2 ++ 3 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c index 527f69b..656c982 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -175,18 +175,6 @@ static bool shader_is_sm_5_1(const struct vkd3d_shader_sm4_parser *sm4) return version->major >= 5 && version->minor >= 1; }
-static void VKD3D_PRINTF_FUNC(3, 4) shader_sm4_error(struct vkd3d_shader_sm4_parser *sm4, - enum vkd3d_shader_error error, const char *format, ...) -{ - va_list args; - - va_start(args, format); - vkd3d_shader_verror(sm4->p.message_context, &sm4->p.location, error, format, args); - va_end(args); - - sm4->p.failed = true; -} - static bool shader_sm4_read_src_param(struct vkd3d_shader_sm4_parser *priv, const uint32_t **ptr, const uint32_t *end, enum vkd3d_data_type data_type, struct vkd3d_shader_src_param *src_param); static bool shader_sm4_read_dst_param(struct vkd3d_shader_sm4_parser *priv, const uint32_t **ptr, @@ -246,15 +234,15 @@ static void shader_sm4_read_shader_data(struct vkd3d_shader_instruction *ins, ui ins->declaration.icb = &priv->icb; }
-static void shader_sm4_set_descriptor_register_range(struct vkd3d_shader_sm4_parser *priv, +static void shader_sm4_set_descriptor_register_range(struct vkd3d_shader_sm4_parser *sm4, struct vkd3d_shader_register *reg, struct vkd3d_shader_register_range *range) { range->first = reg->idx[1].offset; - range->last = reg->idx[shader_is_sm_5_1(priv) ? 2 : 1].offset; + range->last = reg->idx[shader_is_sm_5_1(sm4) ? 2 : 1].offset; if (range->last < range->first) { FIXME("Invalid register range [%u:%u].\n", range->first, range->last); - shader_sm4_error(priv, VKD3D_SHADER_ERROR_TPF_INVALID_REGISTER_RANGE, + vkd3d_shader_parser_error(&sm4->p, VKD3D_SHADER_ERROR_TPF_INVALID_REGISTER_RANGE, "Last register %u must not be less than first register %u in range.\n", range->last, range->first); } } diff --git a/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d-shader/vkd3d_shader_main.c index 696c332..c30a375 100644 --- a/libs/vkd3d-shader/vkd3d_shader_main.c +++ b/libs/vkd3d-shader/vkd3d_shader_main.c @@ -378,6 +378,18 @@ static void vkd3d_shader_parser_destroy(struct vkd3d_shader_parser *parser) shader_sm4_free(parser); }
+void VKD3D_PRINTF_FUNC(3, 4) vkd3d_shader_parser_error(struct vkd3d_shader_parser *parser, + enum vkd3d_shader_error error, const char *format, ...) +{ + va_list args; + + va_start(args, format); + vkd3d_shader_verror(parser->message_context, &parser->location, error, format, args); + va_end(args); + + parser->failed = true; +} + static int vkd3d_shader_validate_compile_info(const struct vkd3d_shader_compile_info *compile_info, bool validate_target_type) { diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index ba17d29..97048ea 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -904,6 +904,8 @@ struct vkd3d_shader_parser const uint32_t *ptr; };
+void vkd3d_shader_parser_error(struct vkd3d_shader_parser *parser, + enum vkd3d_shader_error error, const char *format, ...) VKD3D_PRINTF_FUNC(3, 4); void vkd3d_shader_parser_init(struct vkd3d_shader_parser *parser, struct vkd3d_shader_message_context *message_context, const char *source_name, const struct vkd3d_shader_version *version);