vc4: Use the nir_builder helper for loading sample mask.
[mesa.git] / src / gallium / drivers / vc4 / vc4_nir_lower_blend.c
index f70821862cf003735332feca5839af1516099d14..7811f1ce40a9c8e43e2d2c0e3f644869950d8aaa 100644 (file)
@@ -494,6 +494,7 @@ vc4_nir_emit_alpha_test_discard(struct vc4_compile *c, nir_builder *b,
         discard->num_components = 1;
         discard->src[0] = nir_src_for_ssa(nir_inot(b, condition));
         nir_builder_instr_insert(b, &discard->instr);
+        c->s->info->fs.uses_discard = true;
 }
 
 static nir_ssa_def *
@@ -630,16 +631,7 @@ vc4_nir_lower_blend_instr(struct vc4_compile *c, nir_builder *b,
         nir_ssa_def *frag_color = intr->src[0].ssa;
 
         if (c->fs_key->sample_coverage) {
-                nir_intrinsic_instr *load =
-                        nir_intrinsic_instr_create(b->shader,
-                                                   nir_intrinsic_load_sample_mask_in);
-                load->num_components = 1;
-                nir_ssa_dest_init(&load->instr, &load->dest, 1, 32, NULL);
-                nir_builder_instr_insert(b, &load->instr);
-
-                nir_ssa_def *bitmask = &load->dest.ssa;
-
-                vc4_nir_store_sample_mask(c, b, bitmask);
+                vc4_nir_store_sample_mask(c, b, nir_load_sample_mask_in(b));
         } else if (c->fs_key->sample_alpha_to_coverage) {
                 nir_ssa_def *a = nir_channel(b, frag_color, 3);