diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c index f3de5a5e63b..6a9420143b7 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c +++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c @@ -3292,7 +3292,7 @@ emit_intrinsic(struct ntv_context *ctx, nir_intrinsic_instr *intr) emit_load_uint_input(ctx, intr, &ctx->sample_mask_in_var, "gl_SampleMaskIn", SpvBuiltInSampleMask); break; - case nir_intrinsic_emit_vertex_with_counter: + case nir_intrinsic_emit_vertex: /* geometry shader emits copied xfb outputs just prior to EmitVertex(), * since that's the end of the shader */ @@ -3303,11 +3303,7 @@ emit_intrinsic(struct ntv_context *ctx, nir_intrinsic_instr *intr) ctx->nir->info.stage == MESA_SHADER_GEOMETRY && util_bitcount(ctx->nir->info.gs.active_stream_mask) > 1); break; - case nir_intrinsic_set_vertex_and_primitive_count: - /* do nothing */ - break; - - case nir_intrinsic_end_primitive_with_counter: + case nir_intrinsic_end_primitive: spirv_builder_end_primitive(&ctx->builder, nir_intrinsic_stream_id(intr), ctx->nir->info.stage == MESA_SHADER_GEOMETRY && util_bitcount(ctx->nir->info.gs.active_stream_mask) > 1); break; diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 4ba01132d34..81ed45ff5db 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -1612,7 +1612,8 @@ clamp_layer_output_instr(nir_builder *b, nir_instr *instr, void *data) switch (instr->type) { case nir_instr_type_intrinsic: { nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr); - if (intr->intrinsic != nir_intrinsic_emit_vertex_with_counter) + if (intr->intrinsic != nir_intrinsic_emit_vertex_with_counter && + intr->intrinsic != nir_intrinsic_emit_vertex) return false; b->cursor = nir_before_instr(instr); clamp_layer_output_emit(b, state); @@ -3812,8 +3813,6 @@ zink_shader_finalize(struct pipe_screen *pscreen, void *nirptr) if (!screen->info.feats.features.shaderImageGatherExtended) tex_opts.lower_tg4_offsets = true; NIR_PASS_V(nir, nir_lower_tex, &tex_opts); - if (nir->info.stage == MESA_SHADER_GEOMETRY) - NIR_PASS_V(nir, nir_lower_gs_intrinsics, nir_lower_gs_intrinsics_per_stream); optimize_nir(nir, NULL); nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir)); if (screen->driconf.inline_uniforms)