mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/glsl: Call vkd3d_shader_normalise().
This commit is contained in:
parent
c7fc60a237
commit
e17e481130
Notes:
Alexandre Julliard
2024-04-17 23:30:26 +02:00
Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/799
@ -139,12 +139,16 @@ static void vkd3d_glsl_generator_init(struct vkd3d_glsl_generator *gen,
|
||||
gen->message_context = message_context;
|
||||
}
|
||||
|
||||
int glsl_compile(struct vsir_program *program, struct vkd3d_shader_code *out,
|
||||
int glsl_compile(struct vsir_program *program, uint64_t config_flags,
|
||||
const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out,
|
||||
struct vkd3d_shader_message_context *message_context)
|
||||
{
|
||||
struct vkd3d_glsl_generator generator;
|
||||
int ret;
|
||||
|
||||
if ((ret = vsir_program_normalise(program, config_flags, compile_info, message_context)) < 0)
|
||||
return ret;
|
||||
|
||||
vkd3d_glsl_generator_init(&generator, program, message_context);
|
||||
ret = vkd3d_glsl_generator_generate(&generator, out);
|
||||
vkd3d_glsl_generator_cleanup(&generator);
|
||||
|
@ -6012,7 +6012,8 @@ enum vkd3d_result vsir_program_normalise(struct vsir_program *program, uint64_t
|
||||
if ((result = vsir_program_normalise_combined_samplers(program, message_context)) < 0)
|
||||
return result;
|
||||
|
||||
if ((result = vsir_program_flatten_control_flow_constructs(program, message_context)) < 0)
|
||||
if (compile_info->target_type != VKD3D_SHADER_TARGET_GLSL
|
||||
&& (result = vsir_program_flatten_control_flow_constructs(program, message_context)) < 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1576,7 +1576,7 @@ static int vkd3d_shader_parser_compile(struct vkd3d_shader_parser *parser,
|
||||
case VKD3D_SHADER_TARGET_GLSL:
|
||||
if ((ret = scan_with_parser(&scan_info, message_context, &scan_descriptor_info, parser)) < 0)
|
||||
return ret;
|
||||
ret = glsl_compile(program, out, message_context);
|
||||
ret = glsl_compile(program, parser->config_flags, compile_info, out, message_context);
|
||||
vkd3d_shader_free_scan_descriptor_info1(&scan_descriptor_info);
|
||||
break;
|
||||
|
||||
|
@ -1538,7 +1538,8 @@ int shader_extract_from_dxbc(const struct vkd3d_shader_code *dxbc,
|
||||
int shader_parse_input_signature(const struct vkd3d_shader_code *dxbc,
|
||||
struct vkd3d_shader_message_context *message_context, struct shader_signature *signature);
|
||||
|
||||
int glsl_compile(struct vsir_program *program, struct vkd3d_shader_code *out,
|
||||
int glsl_compile(struct vsir_program *program, uint64_t config_flags,
|
||||
const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out,
|
||||
struct vkd3d_shader_message_context *message_context);
|
||||
|
||||
#define SPIRV_MAX_SRC_COUNT 6
|
||||
|
Loading…
x
Reference in New Issue
Block a user