nir: Add rounding modes enum
[mesa.git] / src / compiler / nir / nir_lower_bitmap.c
index bd5c30f8dc197f27b112cd8b9b839e8ee139d4dd..a4d9498576c87c7ab3f935088e2bd422d0c0f25f 100644 (file)
@@ -95,7 +95,10 @@ lower_bitmap(nir_shader *shader, nir_builder *b,
    tex->sampler_index = options->sampler;
    tex->texture_index = options->sampler;
    tex->dest_type = nir_type_float;
-   tex->src[0].src = nir_src_for_ssa(texcoord);
+   tex->src[0].src_type = nir_tex_src_coord;
+   tex->src[0].src =
+      nir_src_for_ssa(nir_channels(b, texcoord,
+                                   (1 << tex->coord_components) - 1));
 
    nir_ssa_dest_init(&tex->instr, &tex->dest, 4, 32, NULL);
    nir_builder_instr_insert(b, &tex->instr);
@@ -107,6 +110,8 @@ lower_bitmap(nir_shader *shader, nir_builder *b,
    discard = nir_intrinsic_instr_create(shader, nir_intrinsic_discard_if);
    discard->src[0] = nir_src_for_ssa(cond);
    nir_builder_instr_insert(b, &discard->instr);
+
+   shader->info.fs.uses_discard = true;
 }
 
 static void
@@ -128,7 +133,7 @@ void
 nir_lower_bitmap(nir_shader *shader,
                  const nir_lower_bitmap_options *options)
 {
-   assert(shader->stage == MESA_SHADER_FRAGMENT);
+   assert(shader->info.stage == MESA_SHADER_FRAGMENT);
 
    lower_bitmap_impl(nir_shader_get_entrypoint(shader), options);
 }