lima: lower fmod in ppir and gpir
[mesa.git] / src / gallium / drivers / lima / lima_program.c
index e01c487cfd3a837ac5ef5e92ee451ef5b45581da..3247892c77340cc48acfe791922b59a69cf7ab2c 100644 (file)
@@ -43,6 +43,7 @@ static const nir_shader_compiler_options vs_nir_options = {
    .lower_fpow = true,
    .lower_ffract = true,
    .lower_fdiv = true,
+   .lower_fmod = true,
    .lower_fsqrt = true,
    .lower_sub = true,
    .lower_flrp32 = true,
@@ -56,6 +57,7 @@ static const nir_shader_compiler_options vs_nir_options = {
 static const nir_shader_compiler_options fs_nir_options = {
    .lower_fpow = true,
    .lower_fdiv = true,
+   .lower_fmod = true,
    .lower_sub = true,
    .lower_flrp32 = true,
    .lower_flrp64 = true,
@@ -117,6 +119,7 @@ lima_program_optimize_vs_nir(struct nir_shader *s)
    } while (progress);
 
    NIR_PASS_V(s, nir_lower_int_to_float);
+   NIR_PASS_V(s, nir_lower_bool_to_float);
    NIR_PASS_V(s, nir_copy_prop);
    NIR_PASS_V(s, nir_lower_locals_to_regs);
    NIR_PASS_V(s, nir_convert_from_ssa, true);
@@ -155,6 +158,7 @@ lima_program_optimize_fs_nir(struct nir_shader *s)
    } while (progress);
 
    NIR_PASS_V(s, nir_lower_int_to_float);
+   NIR_PASS_V(s, nir_lower_bool_to_float);
 
    /* Lower modifiers */
    NIR_PASS_V(s, nir_lower_to_source_mods, nir_lower_all_source_mods);