diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index bbf0499f1fd..d2546cb57da 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -548,7 +548,6 @@ struct si_shader_info { bool uses_grid_size; bool uses_tg_size; bool uses_atomic_ordered_add; - bool writes_position; bool writes_psize; bool writes_clipvertex; bool writes_primid; diff --git a/src/gallium/drivers/radeonsi/si_shader_info.c b/src/gallium/drivers/radeonsi/si_shader_info.c index b7976afadd2..8c02f643507 100644 --- a/src/gallium/drivers/radeonsi/si_shader_info.c +++ b/src/gallium/drivers/radeonsi/si_shader_info.c @@ -498,7 +498,6 @@ void si_nir_scan_shader(struct si_screen *sscreen, struct nir_shader *nir, info->writes_psize = nir->info.outputs_written & VARYING_BIT_PSIZ; info->writes_clipvertex = nir->info.outputs_written & VARYING_BIT_CLIP_VERTEX; info->writes_edgeflag = nir->info.outputs_written & VARYING_BIT_EDGE; - info->writes_position = nir->info.outputs_written & VARYING_BIT_POS; } nir_function_impl *impl = nir_shader_get_entrypoint(nir); diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp index 65be602f73b..8072d65d23b 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp +++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp @@ -3667,7 +3667,7 @@ static void *si_create_shader_selector(struct pipe_context *ctx, bool ngg_culling_allowed = sscreen->info.gfx_level >= GFX10 && sscreen->use_ngg_culling && - sel->info.writes_position && + sel->nir->info.outputs_written & VARYING_BIT_POS && !sel->nir->info.writes_memory && /* NGG GS supports culling with streamout because it culls after streamout. */ (sel->stage == MESA_SHADER_GEOMETRY || !sel->info.enabled_streamout_buffer_mask) &&