zink: do not lower gs-intrinsics
We don't use the counters for anything useful, so let's drop this lowering pass. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20135>
This commit is contained in:
committed by
Marge Bot
parent
7244d88516
commit
ad26d29adc
@@ -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);
|
emit_load_uint_input(ctx, intr, &ctx->sample_mask_in_var, "gl_SampleMaskIn", SpvBuiltInSampleMask);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case nir_intrinsic_emit_vertex_with_counter:
|
case nir_intrinsic_emit_vertex:
|
||||||
/* geometry shader emits copied xfb outputs just prior to EmitVertex(),
|
/* geometry shader emits copied xfb outputs just prior to EmitVertex(),
|
||||||
* since that's the end of the shader
|
* 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);
|
ctx->nir->info.stage == MESA_SHADER_GEOMETRY && util_bitcount(ctx->nir->info.gs.active_stream_mask) > 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case nir_intrinsic_set_vertex_and_primitive_count:
|
case nir_intrinsic_end_primitive:
|
||||||
/* do nothing */
|
|
||||||
break;
|
|
||||||
|
|
||||||
case nir_intrinsic_end_primitive_with_counter:
|
|
||||||
spirv_builder_end_primitive(&ctx->builder, nir_intrinsic_stream_id(intr),
|
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);
|
ctx->nir->info.stage == MESA_SHADER_GEOMETRY && util_bitcount(ctx->nir->info.gs.active_stream_mask) > 1);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1612,7 +1612,8 @@ clamp_layer_output_instr(nir_builder *b, nir_instr *instr, void *data)
|
|||||||
switch (instr->type) {
|
switch (instr->type) {
|
||||||
case nir_instr_type_intrinsic: {
|
case nir_instr_type_intrinsic: {
|
||||||
nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
|
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;
|
return false;
|
||||||
b->cursor = nir_before_instr(instr);
|
b->cursor = nir_before_instr(instr);
|
||||||
clamp_layer_output_emit(b, state);
|
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)
|
if (!screen->info.feats.features.shaderImageGatherExtended)
|
||||||
tex_opts.lower_tg4_offsets = true;
|
tex_opts.lower_tg4_offsets = true;
|
||||||
NIR_PASS_V(nir, nir_lower_tex, &tex_opts);
|
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);
|
optimize_nir(nir, NULL);
|
||||||
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
|
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
|
||||||
if (screen->driconf.inline_uniforms)
|
if (screen->driconf.inline_uniforms)
|
||||||
|
|||||||
Reference in New Issue
Block a user