diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2017-08-14 09:45:54 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2017-08-14 09:45:54 +0000 |
commit | 4c58069f5013f0a621503525f7d5193bfe9976b3 (patch) | |
tree | bd8f8a08b889e9a8b99c9de01ae12459d527ea6d /lib/mesa/src/compiler/glsl/ir_optimization.h | |
parent | 5caa025e6b62d0456faad86c89f239a14d1eaadb (diff) |
Import Mesa 17.1.6
Diffstat (limited to 'lib/mesa/src/compiler/glsl/ir_optimization.h')
-rw-r--r-- | lib/mesa/src/compiler/glsl/ir_optimization.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/lib/mesa/src/compiler/glsl/ir_optimization.h b/lib/mesa/src/compiler/glsl/ir_optimization.h index 95af29544..82cdac9b3 100644 --- a/lib/mesa/src/compiler/glsl/ir_optimization.h +++ b/lib/mesa/src/compiler/glsl/ir_optimization.h @@ -21,13 +21,15 @@ * DEALINGS IN THE SOFTWARE. */ - /** * \file ir_optimization.h * * Prototypes for optimization passes to be called by the compiler and drivers. */ +#ifndef GLSL_IR_OPTIMIZATION_H +#define GLSL_IR_OPTIMIZATION_H + /* Operations for lower_instructions() */ #define SUB_TO_ADD_NEG 0x01 #define FDIV_TO_MUL_RCP 0x02 @@ -51,6 +53,13 @@ #define IMUL_HIGH_TO_MUL 0x80000 #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 + +/* Opertaions for lower_64bit_integer_instructions() */ +#define MUL64 (1U << 0) +#define SIGN64 (1U << 1) +#define DIV64 (1U << 2) +#define MOD64 (1U << 3) /** * \see class lower_packing_builtins_visitor @@ -110,7 +119,8 @@ bool do_lower_texture_projection(exec_list *instructions); bool do_if_simplification(exec_list *instructions); bool opt_flatten_nested_if_blocks(exec_list *instructions); bool do_discard_simplification(exec_list *instructions); -bool lower_if_to_cond_assign(exec_list *instructions, unsigned max_depth = 0); +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); @@ -138,7 +148,9 @@ void lower_shared_reference(struct gl_linked_shader *shader, void lower_ubo_reference(struct gl_linked_shader *shader, bool clamp_block_indices); void lower_packed_varyings(void *mem_ctx, - unsigned locations_used, ir_variable_mode mode, + unsigned locations_used, + const uint8_t *components, + ir_variable_mode mode, unsigned gs_input_vertices, gl_linked_shader *shader, bool disable_varying_packing, bool xfb_enabled); @@ -161,3 +173,8 @@ void propagate_invariance(exec_list *instructions); ir_rvalue * compare_index_block(exec_list *instructions, ir_variable *index, unsigned base, unsigned components, void *mem_ctx); + +bool lower_64bit_integer_instructions(exec_list *instructions, + unsigned what_to_lower); + +#endif /* GLSL_IR_OPTIMIZATION_H */ |