dEQP-GLES2.functional.fragment_ops.depth_stencil.random.8
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.9
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.stencil
-dEQP-GLES2.functional.shaders.algorithm.hsl_to_rgb_vertex
-dEQP-GLES2.functional.shaders.functions.array_arguments.global_in_int_vertex
-dEQP-GLES2.functional.shaders.functions.array_arguments.local_in_int_vertex
-dEQP-GLES2.functional.shaders.functions.datatypes.int_int_vertex
-dEQP-GLES2.functional.shaders.functions.overloading.builtin_sin_vertex
-dEQP-GLES2.functional.shaders.functions.overloading.builtin_step_vertex
-dEQP-GLES2.functional.shaders.functions.overloading.user_func_arg_int_types_vertex
-dEQP-GLES2.functional.shaders.functions.qualifiers.inout_highp_int_vertex
-dEQP-GLES2.functional.shaders.functions.qualifiers.inout_int_vertex
-dEQP-GLES2.functional.shaders.functions.qualifiers.inout_lowp_int_vertex
-dEQP-GLES2.functional.shaders.functions.qualifiers.out_highp_int_vertex
-dEQP-GLES2.functional.shaders.functions.qualifiers.out_int_vertex
-dEQP-GLES2.functional.shaders.functions.qualifiers.out_lowp_int_vertex
dEQP-GLES2.functional.shaders.loops.do_while_dynamic_iterations.vector_counter_fragment
dEQP-GLES2.functional.shaders.loops.for_dynamic_iterations.vector_counter_fragment
dEQP-GLES2.functional.shaders.loops.while_dynamic_iterations.vector_counter_fragment
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec2_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec3_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec4_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec2_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec3_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec4_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec2_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec3_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec4_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec2_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec3_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec4_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec2_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec3_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec4_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec2_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec3_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec4_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec2_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec3_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec4_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec2_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec3_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec4_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec2_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec3_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec4_int_vertex
-dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_int_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_int_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec4_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_int_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec2_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec3_vertex
-dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec4_vertex
dEQP-GLES2.functional.shaders.random.all_features.fragment.37
dEQP-GLES2.functional.shaders.random.exponential.fragment.11
dEQP-GLES2.functional.shaders.random.exponential.fragment.12
.lower_sub = true,
.lower_flrp32 = true,
.lower_flrp64 = true,
- .lower_ftrunc = true,
/* could be implemented by clamp */
.lower_fsat = true,
.lower_bitops = true,
NIR_PASS(progress, s, nir_opt_cse);
NIR_PASS(progress, s, nir_opt_peephole_select, 8, true, true);
NIR_PASS(progress, s, nir_opt_algebraic);
+ NIR_PASS(progress, s, lima_nir_lower_ftrunc);
NIR_PASS(progress, s, nir_opt_constant_folding);
NIR_PASS(progress, s, nir_opt_undef);
NIR_PASS(progress, s, nir_opt_loop_unroll,
} while (progress);
NIR_PASS_V(s, nir_lower_int_to_float);
- /* Run opt_algebraic between int_to_float and bool_to_float because
- * int_to_float emits ftrunc, and ftrunc lowering generates bool ops
- */
- do {
- progress = false;
- NIR_PASS(progress, s, nir_opt_algebraic);
- } while (progress);
-
+ /* int_to_float pass generates ftrunc, so lower it */
+ NIR_PASS(progress, s, lima_nir_lower_ftrunc);
NIR_PASS_V(s, nir_lower_bool_to_float);
NIR_PASS_V(s, nir_copy_prop);