lima: lower fmod in ppir and gpir
authorErico Nunes <nunes.erico@gmail.com>
Sat, 15 Jun 2019 13:41:05 +0000 (15:41 +0200)
committerErico Nunes <nunes.erico@gmail.com>
Sun, 16 Jun 2019 10:11:59 +0000 (10:11 +0000)
Since commit 4f3c82c72c5 fmod is no longer being lowered in nir, and
ends up crashing lima programs with "unsupported nir_op: fmod" in both
ppir and gpir.
There seems to be no mod operation in hardware in utgard and there is an
optimization in nir to lower fmod to instructions that lima already
implements, so let's use that.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
src/gallium/drivers/lima/lima_program.c

index 38776154edbb7170d79742c57023f4a101c4bab0..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,