nouveau: Use nir_lower_doubles instead of lower_fmod64 on nvc0.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 3 Jun 2019 18:43:38 +0000 (11:43 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 5 Jun 2019 23:45:12 +0000 (16:45 -0700)
We currently have two duplicate mechanisms for lowering fmod@64.
One is a nir_opt_algebraic rule keyed off of options->lower_fmod64,
and the other is nir_lower_doubles, which offers a full gamut of
fp64 lowering.  The latter works slightly better in some corner cases,
so I'm trying to eliminate lower_fmod64 and drop the redundancy.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c

index 998116fc251d9090003613d318fd435fb5715d53..09f8c4135e55bf556a2c86b8d73fb6700e4e296d 100644 (file)
@@ -906,7 +906,6 @@ static const nir_shader_compiler_options nir_options = {
    .lower_fsat = false,
    .lower_fsqrt = false, // TODO: only before gm200
    .lower_fmod32 = true,
-   .lower_fmod64 = true,
    .lower_bitfield_extract = false,
    .lower_bitfield_extract_to_shifts = false,
    .lower_bitfield_insert = false,
@@ -955,7 +954,7 @@ static const nir_shader_compiler_options nir_options = {
    .lower_mul_2x32_64 = true, // TODO
    .max_unroll_iterations = 32,
    .lower_int64_options = nir_lower_divmod64, // TODO
-   .lower_doubles_options = 0, // TODO
+   .lower_doubles_options = nir_lower_dmod, // TODO
 };
 
 static const void *