X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcompiler%2Fglsl%2Fir_optimization.h;h=e027654d3a02b8a57a2950da22cf6ecfe95026ac;hb=d7bbb3caf19e6e0f2dd47855babb8f5e91596e77;hp=38fb54990ea2d49219b895dba181279221a6f9e1;hpb=3cc997c7c81759446f4478d70252015fbe0ed9f5;p=mesa.git diff --git a/src/compiler/glsl/ir_optimization.h b/src/compiler/glsl/ir_optimization.h index 38fb54990ea..e027654d3a0 100644 --- a/src/compiler/glsl/ir_optimization.h +++ b/src/compiler/glsl/ir_optimization.h @@ -30,6 +30,9 @@ #ifndef GLSL_IR_OPTIMIZATION_H #define GLSL_IR_OPTIMIZATION_H +struct gl_linked_shader; +struct gl_shader_program; + /* Operations for lower_instructions() */ #define SUB_TO_ADD_NEG 0x01 #define FDIV_TO_MUL_RCP 0x02 @@ -54,6 +57,7 @@ #define DDIV_TO_MUL_RCP 0x100000 #define DIV_TO_MUL_RCP (FDIV_TO_MUL_RCP | DDIV_TO_MUL_RCP) #define SQRT_TO_ABS_SQRT 0x200000 +#define MUL64_TO_MUL_AND_MUL_HIGH 0x400000 /* Opertaions for lower_64bit_integer_instructions() */ #define MUL64 (1U << 0) @@ -100,7 +104,6 @@ bool opt_conditional_discard(exec_list *instructions); bool do_constant_folding(exec_list *instructions); bool do_constant_variable(exec_list *instructions); bool do_constant_variable_unlinked(exec_list *instructions); -bool do_copy_propagation(exec_list *instructions); bool do_copy_propagation_elements(exec_list *instructions); bool do_constant_propagation(exec_list *instructions); void do_dead_builtin_varyings(struct gl_context *ctx, @@ -123,9 +126,8 @@ bool lower_if_to_cond_assign(gl_shader_stage stage, exec_list *instructions, unsigned max_depth = 0, unsigned min_branch_cost = 0); bool do_mat_op_to_vec(exec_list *instructions); bool do_minmax_prune(exec_list *instructions); -bool do_noop_swizzle(exec_list *instructions); bool do_structure_splitting(exec_list *instructions); -bool do_swizzle_swizzle(exec_list *instructions); +bool optimize_swizzles(exec_list *instructions); bool do_vectorize(exec_list *instructions); bool do_tree_grafting(exec_list *instructions); bool do_vec_index_to_cond_assign(exec_list *instructions); @@ -143,8 +145,9 @@ bool lower_clip_cull_distance(struct gl_shader_program *prog, gl_linked_shader *shader); void lower_output_reads(unsigned stage, exec_list *instructions); bool lower_packing_builtins(exec_list *instructions, int op_mask); -void lower_shared_reference(struct gl_linked_shader *shader, - unsigned *shared_size); +void lower_shared_reference(struct gl_context *ctx, + struct gl_shader_program *prog, + struct gl_linked_shader *shader); void lower_ubo_reference(struct gl_linked_shader *shader, bool clamp_block_indices, bool use_std430_as_default); void lower_packed_varyings(void *mem_ctx, @@ -165,7 +168,8 @@ void optimize_dead_builtin_variables(exec_list *instructions, bool lower_tess_level(gl_linked_shader *shader); bool lower_vertex_id(gl_linked_shader *shader); -bool lower_blend_equation_advanced(gl_linked_shader *shader); +bool lower_cs_derived(gl_linked_shader *shader); +bool lower_blend_equation_advanced(gl_linked_shader *shader, bool coherent); bool lower_subroutine(exec_list *instructions, struct _mesa_glsl_parse_state *state); void propagate_invariance(exec_list *instructions);