zink: handle gl_SampleMaskIn loading in ntv
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 24 Jul 2020 13:52:34 +0000 (09:52 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 4 Jan 2021 18:59:06 +0000 (18:59 +0000)
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8316>

src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c

index f343722..075681b 100644 (file)
@@ -72,7 +72,7 @@ struct ntv_context {
 
    SpvId front_face_var, instance_id_var, vertex_id_var,
          primitive_id_var, invocation_id_var, // geometry
-         sample_mask_type, sample_id_var, sample_pos_var,
+         sample_mask_type, sample_id_var, sample_pos_var, sample_mask_in_var,
          tess_patch_vertices_in, tess_coord_var, // tess
          push_const_var;
 };
@@ -2040,6 +2040,10 @@ emit_intrinsic(struct ntv_context *ctx, nir_intrinsic_instr *intr)
       emit_load_vec_input(ctx, intr, &ctx->sample_pos_var, "gl_SamplePosition", SpvBuiltInSamplePosition, nir_type_float);
       break;
 
+   case nir_intrinsic_load_sample_mask_in:
+      emit_load_uint_input(ctx, intr, &ctx->sample_mask_in_var, "gl_SampleMaskIn", SpvBuiltInSampleMask);
+      break;
+
    case nir_intrinsic_emit_vertex_with_counter:
       /* geometry shader emits copied xfb outputs just prior to EmitVertex(),
        * since that's the end of the shader