nir: nir_shader_compiler_options: drop native_integers
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Sun, 5 May 2019 09:35:41 +0000 (11:35 +0200)
committerChristian Gmeiner <christian.gmeiner@gmail.com>
Tue, 7 May 2019 05:35:52 +0000 (07:35 +0200)
Driver which do not support native integers should use a lowering
pass to go from integers to floats.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
12 files changed:
src/broadcom/compiler/nir_to_vir.c
src/compiler/glsl/glsl_to_nir.cpp
src/compiler/nir/nir.h
src/freedreno/ir3/ir3_nir.c
src/gallium/drivers/lima/lima_program.c
src/gallium/drivers/nouveau/nv50/nv50_screen.c
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
src/gallium/drivers/panfrost/midgard/midgard_compile.h
src/gallium/drivers/radeonsi/si_get.c
src/gallium/drivers/vc4/vc4_program.c
src/intel/compiler/brw_compiler.c
src/mesa/program/prog_to_nir.c

index a3484c5c67a53f63ee796c2383c128468624814d..1556dbee45ed531476b62acf5362f8b1db1a8f2c 100644 (file)
@@ -2380,7 +2380,6 @@ const nir_shader_compiler_options v3d_nir_options = {
         .lower_ldexp = true,
         .lower_mul_high = true,
         .lower_wpos_pntc = true,
-        .native_integers = true,
 };
 
 /**
index 0aeac769452a78d85ddb93eeaa9c6c5c9fdb7087..a2c2f13416f716166806994b8a0cb2e6f6ee0fbb 100644 (file)
@@ -263,7 +263,7 @@ glsl_to_nir(struct gl_context *ctx,
 
 nir_visitor::nir_visitor(gl_context *ctx, nir_shader *shader)
 {
-   this->supports_ints = shader->options->native_integers;
+   this->supports_ints = true;
    this->supports_std430 = ctx->Const.UseSTD430AsDefaultPacking;
    this->shader = shader;
    this->is_global = true;
index 450f10a70b9e93dcc29a14db5671d5a250973ee2..0fd2cabcff6e50b4f77c22f3567eec45e2bb8093 100644 (file)
@@ -2300,12 +2300,6 @@ typedef struct nir_shader_compiler_options {
    bool lower_all_io_to_temps;
    bool lower_all_io_to_elements;
 
-   /**
-    * Does the driver support real 32-bit integers?  (Otherwise, integers
-    * are simulated by floats.)
-    */
-   bool native_integers;
-
    /* Indicates that the driver only has zero-based vertex id */
    bool vertex_id_zero_based;
 
index dffcf5f5ab7d76721614705f0a4f2a95117552b5..3bc22fe5be5917be2741f237fb11386f01b30b07 100644 (file)
@@ -45,7 +45,6 @@ static const nir_shader_compiler_options options = {
                .lower_uadd_carry = true,
                .lower_mul_high = true,
                .fuse_ffma = true,
-               .native_integers = true,
                .vertex_id_zero_based = true,
                .lower_extract_byte = true,
                .lower_extract_word = true,
@@ -72,7 +71,6 @@ static const nir_shader_compiler_options options_a6xx = {
                .lower_uadd_carry = true,
                .lower_mul_high = true,
                .fuse_ffma = true,
-               .native_integers = true,
                .vertex_id_zero_based = false,
                .lower_extract_byte = true,
                .lower_extract_word = true,
index 1c5057cc9f7bdc0dd7f5b6b4938f5428ef42f87f..e1cea2463a67ff0c06c8eb4c9aca33386754072f 100644 (file)
@@ -50,7 +50,6 @@ static const nir_shader_compiler_options vs_nir_options = {
    .lower_ftrunc = true,
    /* could be implemented by clamp */
    .lower_fsat = true,
-   .native_integers = true,
 };
 
 static const nir_shader_compiler_options fs_nir_options = {
@@ -60,7 +59,6 @@ static const nir_shader_compiler_options fs_nir_options = {
    .lower_flrp32 = true,
    .lower_flrp64 = true,
    .lower_fsign = true,
-   .native_integers = true,
 };
 
 const void *
index 423b6af3b64bbfaec1239e181cd9352f84de6379..6c865d75f6d28e3089529dec438a87f08c8b913b 100644 (file)
@@ -899,7 +899,6 @@ static const nir_shader_compiler_options nir_options = {
    .lower_extract_byte = true,
    .lower_extract_word = true,
    .lower_all_io_to_temps = false,
-   .native_integers = true,
    .lower_cs_local_index_from_id = true,
    .use_interpolated_input_intrinsics = true,
    .max_unroll_iterations = 32,
index 79224ac99a75aa958c325d824a2d347d1be9e051..fe80c7e91037eb178a7d3cb8bcaa0f8757a3209f 100644 (file)
@@ -941,7 +941,6 @@ static const nir_shader_compiler_options nir_options = {
    .lower_extract_byte = true,
    .lower_extract_word = true,
    .lower_all_io_to_temps = false,
-   .native_integers = true,
    .vertex_id_zero_based = false,
    .lower_base_vertex = false,
    .lower_helper_invocation = false,
index 0724582d62c8ad2747815d9540ac06725297fa2d..6f02b3662f63c0a0ae0751682bc34efa43fb2803 100644 (file)
@@ -106,8 +106,6 @@ static const nir_shader_compiler_options midgard_nir_options = {
         .vertex_id_zero_based = true,
         .lower_extract_byte = true,
         .lower_extract_word = true,
-
-        .native_integers = true
 };
 
 #endif
index 4e23d283ab7f78d85a2cadedaff89c4ff3fa9c72..700777186d8c9feed61e4bc70202f95b77595ac4 100644 (file)
@@ -498,7 +498,6 @@ static const struct nir_shader_compiler_options nir_options = {
        .lower_extract_word = true,
        .optimize_sample_mask_in = true,
        .max_unroll_iterations = 32,
-       .native_integers = true,
 };
 
 static const void *
index 7f6809c087cc996776bd8fe806f66feaea3ecaa2..2ca3f907135ad9834832212ffda9ddc83f187be7 100644 (file)
@@ -2173,7 +2173,6 @@ static const nir_shader_compiler_options nir_options = {
         .lower_fsqrt = true,
         .lower_ldexp = true,
         .lower_negate = true,
-        .native_integers = true,
         .max_unroll_iterations = 32,
 };
 
index 44296083711e251e151ded7c07190f6800114eed..b119a75876889100a758a87e85e73b04e1e91778 100644 (file)
@@ -46,7 +46,6 @@
    .lower_isign = true,                                                       \
    .lower_ldexp = true,                                                       \
    .lower_device_index_to_zero = true,                                        \
-   .native_integers = true,                                                   \
    .use_interpolated_input_intrinsics = true,                                 \
    .vertex_id_zero_based = true,                                              \
    .lower_base_vertex = true
index cb1c19e9dfa2f74528719600f744a00576e902b4..dda3cd91da9e46a6cfbe0a08f8d79264c0d44d71 100644 (file)
@@ -362,18 +362,10 @@ ptn_lit(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
       nir_ssa_def *pow = nir_fpow(b, nir_fmax(b, src0_y, nir_imm_float(b, 0.0)),
                                   wclamp);
 
-      nir_ssa_def *z;
-      if (b->shader->options->native_integers) {
-         z = nir_bcsel(b,
-                       nir_fge(b, nir_imm_float(b, 0.0), ptn_channel(b, src[0], X)),
-                       nir_imm_float(b, 0.0),
-                       pow);
-      } else {
-         z = nir_fcsel(b,
-                       nir_sge(b, nir_imm_float(b, 0.0), ptn_channel(b, src[0], X)),
-                       nir_imm_float(b, 0.0),
-                       pow);
-      }
+      nir_ssa_def *z = nir_bcsel(b,
+                                 nir_fge(b, nir_imm_float(b, 0.0), ptn_channel(b, src[0], X)),
+                                 nir_imm_float(b, 0.0),
+                                 pow);
 
       ptn_move_dest_masked(b, dest, z, WRITEMASK_Z);
    }
@@ -402,11 +394,7 @@ ptn_scs(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 static void
 ptn_slt(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 {
-   if (b->shader->options->native_integers) {
-      ptn_move_dest(b, dest, nir_b2f32(b, nir_flt(b, src[0], src[1])));
-   } else {
-      ptn_move_dest(b, dest, nir_slt(b, src[0], src[1]));
-   }
+   ptn_move_dest(b, dest, nir_b2f32(b, nir_flt(b, src[0], src[1])));
 }
 
 /**
@@ -415,11 +403,7 @@ ptn_slt(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 static void
 ptn_sge(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 {
-   if (b->shader->options->native_integers) {
-      ptn_move_dest(b, dest, nir_b2f32(b, nir_fge(b, src[0], src[1])));
-   } else {
-      ptn_move_dest(b, dest, nir_sge(b, src[0], src[1]));
-   }
+   ptn_move_dest(b, dest, nir_b2f32(b, nir_fge(b, src[0], src[1])));
 }
 
 static void
@@ -464,15 +448,9 @@ ptn_dph(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 static void
 ptn_cmp(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 {
-   if (b->shader->options->native_integers) {
-      ptn_move_dest(b, dest, nir_bcsel(b,
-                                       nir_flt(b, src[0], nir_imm_float(b, 0.0)),
-                                       src[1], src[2]));
-   } else {
-      ptn_move_dest(b, dest, nir_fcsel(b,
-                                       nir_slt(b, src[0], nir_imm_float(b, 0.0)),
-                                       src[1], src[2]));
-   }
+   ptn_move_dest(b, dest, nir_bcsel(b,
+                                    nir_flt(b, src[0], nir_imm_float(b, 0.0)),
+                                    src[1], src[2]));
 }
 
 static void
@@ -484,9 +462,7 @@ ptn_lrp(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 static void
 ptn_kil(nir_builder *b, nir_ssa_def **src)
 {
-   nir_ssa_def *cmp = b->shader->options->native_integers ?
-      nir_bany(b, nir_flt(b, src[0], nir_imm_float(b, 0.0))) :
-      nir_fany_nequal4(b, nir_slt(b, src[0], nir_imm_float(b, 0.0)), nir_imm_float(b, 0.0));
+   nir_ssa_def *cmp = nir_bany(b, nir_flt(b, src[0], nir_imm_float(b, 0.0)));
 
    nir_intrinsic_instr *discard =
       nir_intrinsic_instr_create(b->shader, nir_intrinsic_discard_if);