diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index 88f36250c10..6a7aef2701c 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -774,7 +774,6 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state) case nir_intrinsic_load_color0: case nir_intrinsic_load_color1: case nir_intrinsic_load_sample_id: - case nir_intrinsic_load_sample_id_no_per_sample: case nir_intrinsic_load_sample_mask_in: case nir_intrinsic_load_interpolated_input: case nir_intrinsic_load_point_coord_maybe_flipped: diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index d3db475e7b1..b8c8c16b6e1 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -925,9 +925,6 @@ system_value("instance_id", 1) system_value("base_instance", 1) system_value("draw_id", 1) system_value("sample_id", 1) -# sample_id_no_per_sample is like sample_id but does not imply per- -# sample shading. See the lower_helper_invocation option. -system_value("sample_id_no_per_sample", 1) system_value("sample_pos", 2) # sample_pos_or_center is like sample_pos but does not imply per-sample # shading. When per-sample dispatch is not enabled, it returns (0.5, 0.5). diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c index ecc9ab536f8..acfca72a33d 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -2968,7 +2968,6 @@ emit_intrinsic(struct ir3_context *ctx, nir_intrinsic_instr *intr) dst[0] = ctx->instance_id; break; case nir_intrinsic_load_sample_id: - case nir_intrinsic_load_sample_id_no_per_sample: if (!ctx->samp_id) { ctx->samp_id = create_sysval_input(ctx, SYSTEM_VALUE_SAMPLE_ID, 0x1); ctx->samp_id->dsts[0]->flags |= IR3_REG_HALF; diff --git a/src/microsoft/compiler/nir_to_dxil.c b/src/microsoft/compiler/nir_to_dxil.c index b62f8506fee..0e7b5f91ae2 100644 --- a/src/microsoft/compiler/nir_to_dxil.c +++ b/src/microsoft/compiler/nir_to_dxil.c @@ -4562,15 +4562,10 @@ emit_load_sample_pos_from_id(struct ntd_context *ctx, nir_intrinsic_instr *intr) static bool emit_load_sample_id(struct ntd_context *ctx, nir_intrinsic_instr *intr) { - assert(ctx->mod.info.has_per_sample_input || - intr->intrinsic == nir_intrinsic_load_sample_id_no_per_sample); + assert(ctx->mod.info.has_per_sample_input); - if (ctx->mod.info.has_per_sample_input) - return emit_load_unary_external_function(ctx, intr, "dx.op.sampleIndex", - DXIL_INTR_SAMPLE_INDEX, nir_type_int); - - store_def(ctx, &intr->def, 0, dxil_module_get_int32_const(&ctx->mod, 0)); - return true; + return emit_load_unary_external_function(ctx, intr, "dx.op.sampleIndex", + DXIL_INTR_SAMPLE_INDEX, nir_type_int); } static bool @@ -4821,7 +4816,6 @@ emit_intrinsic(struct ntd_context *ctx, nir_intrinsic_instr *intr) return emit_load_unary_external_function(ctx, intr, "dx.op.primitiveID", DXIL_INTR_PRIMITIVE_ID, nir_type_int); case nir_intrinsic_load_sample_id: - case nir_intrinsic_load_sample_id_no_per_sample: return emit_load_sample_id(ctx, intr); case nir_intrinsic_load_invocation_id: switch (ctx->mod.shader_kind) { diff --git a/src/panfrost/util/pan_lower_helper_invocation.c b/src/panfrost/util/pan_lower_helper_invocation.c index 4c75ae948fe..80035788dfb 100644 --- a/src/panfrost/util/pan_lower_helper_invocation.c +++ b/src/panfrost/util/pan_lower_helper_invocation.c @@ -25,10 +25,8 @@ #include "pan_ir.h" /* Lower gl_HelperInvocation to (gl_SampleMaskIn == 0), this depends on - * architectural details but is required for correct operation with - * multisampling. NIR's lowering won't work for us, since there is no in-spec - * way to implement load_sample_id_no_per_sample. */ - + * architectural details but is more efficient than NIR's lowering. + */ static bool pan_lower_helper_invocation_instr(nir_builder *b, nir_intrinsic_instr *intr, void *data)