From: Conor McCarthy <cmccarthy(a)codeweavers.com> These are needed for reading metadata. --- libs/vkd3d-shader/dxil.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 066af7d11..62fddab2b 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -2155,6 +2155,7 @@ static enum vkd3d_result sm6_parser_globals_init(struct sm6_parser *sm6) { const struct dxil_block *block = &sm6->root_block; const struct dxil_record *record; + enum vkd3d_result ret; uint64_t version; size_t i; @@ -2197,6 +2198,13 @@ static enum vkd3d_result sm6_parser_globals_init(struct sm6_parser *sm6) } } + for (i = 0; i < block->child_block_count; ++i) + { + if (block->child_blocks[i]->id == CONSTANTS_BLOCK && (ret = sm6_parser_constants_init(sm6, + block->child_blocks[i])) < 0) + return ret; + } + return VKD3D_OK; } @@ -2769,6 +2777,8 @@ static enum vkd3d_result sm6_parser_module_init(struct sm6_parser *sm6, const st switch (block->id) { case CONSTANTS_BLOCK: + if (level < 2) + break; function = &sm6->functions[sm6->function_count]; sm6->cur_max_value = function->value_count; return sm6_parser_constants_init(sm6, block); -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/372