vkd3d-shader/hlsl: Generate RDEF outside tpf_compile().

This commit is contained in:
Francisco Casas
2024-11-26 15:13:21 -03:00
committed by Henri Verbeet
parent ecddc39b31
commit ca9bb2e089
Notes: Henri Verbeet 2024-12-10 15:58:38 +01:00
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1308
3 changed files with 30 additions and 7 deletions

View File

@@ -10586,18 +10586,25 @@ int hlsl_emit_bytecode(struct hlsl_ctx *ctx, struct hlsl_ir_function_decl *entry
case VKD3D_SHADER_TARGET_DXBC_TPF:
{
uint32_t config_flags = vkd3d_shader_init_config_flags();
struct vkd3d_shader_code rdef = {0};
struct vsir_program program;
int result;
sm4_generate_rdef(ctx, &rdef);
if (ctx->result)
return ctx->result;
sm4_generate_vsir(ctx, entry_func, config_flags, &program);
if (ctx->result)
{
vsir_program_cleanup(&program);
vkd3d_shader_free_shader_code(&rdef);
return ctx->result;
}
result = tpf_compile(&program, config_flags, out, ctx->message_context, ctx, entry_func);
result = tpf_compile(&program, config_flags, &rdef, out, ctx->message_context, ctx, entry_func);
vsir_program_cleanup(&program);
vkd3d_shader_free_shader_code(&rdef);
return result;
}