From 58aed8fd0d8476717c0d78cf2f0fc895e92583bc Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Mon, 24 Feb 2025 16:07:04 +0100 Subject: [PATCH] vkd3d-shader/fx: Use vkd3d_string_buffer_print_f32() in parse_fx_4_numeric_value(). Instead of "%f". vkd3d_string_buffer_print_f32() will use sufficient precision to represent the stored value exactly, and will use '.' as decimal separator regardless of the current locale. --- libs/vkd3d-shader/fx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/fx.c b/libs/vkd3d-shader/fx.c index bd7e7b42..de29cb0e 100644 --- a/libs/vkd3d-shader/fx.c +++ b/libs/vkd3d-shader/fx.c @@ -3053,7 +3053,7 @@ static void parse_fx_4_numeric_value(struct fx_parser *parser, uint32_t offset, fx_parser_read_unstructured(parser, &value, offset, sizeof(uint32_t)); if (base_type == FX_4_NUMERIC_TYPE_FLOAT) - vkd3d_string_buffer_printf(&parser->buffer, "%f", value.f); + vkd3d_string_buffer_print_f32(&parser->buffer, value.f); else if (base_type == FX_4_NUMERIC_TYPE_INT) vkd3d_string_buffer_printf(&parser->buffer, "%d", value.i); else if (base_type == FX_4_NUMERIC_TYPE_UINT)