vkd3d-shader/fx: Fix reading the assignment value base type when parsing fx_2_0.

This commit is contained in:
Nikolay Sivov
2025-06-02 00:14:32 +02:00
committed by Henri Verbeet
parent 4e2fefdfdf
commit 108f4fe47e
Notes: Henri Verbeet 2025-06-02 21:02:29 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1528

View File

@@ -3988,11 +3988,12 @@ static void fx_parse_fx_2_assignment(struct fx_parser *parser, const struct fx_a
{ {
if (state->type == FX_UINT || state->type == FX_FLOAT) if (state->type == FX_UINT || state->type == FX_FLOAT)
{ {
uint32_t offset = entry->type; uint32_t offset = entry->type, base_type;
unsigned int size; unsigned int size;
size = fx_get_fx_2_type_size(parser, &offset); size = fx_get_fx_2_type_size(parser, &offset);
parse_fx_2_numeric_value(parser, entry->value, size, entry->type); fx_parser_read_unstructured(parser, &base_type, entry->type, sizeof(base_type));
parse_fx_2_numeric_value(parser, entry->value, size, base_type);
} }
else if (state->type == FX_VERTEXSHADER || state->type == FX_PIXELSHADER) else if (state->type == FX_VERTEXSHADER || state->type == FX_PIXELSHADER)
{ {