st/mesa: don't generate VS TGSI if NIR is enabled

it's no longer needed

Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Marek Olšák
2019-11-27 22:47:56 -05:00
parent a90f4453fe
commit a3de63fbb3

View File

@@ -450,7 +450,20 @@ st_translate_vertex_program(struct st_context *st,
if (stp->Base.Parameters->NumParameters)
stp->affected_states |= ST_NEW_VS_CONSTANTS;
/* No samplers are allowed in ARB_vp. */
/* Translate to NIR if preferred. */
if (st->pipe->screen->get_shader_param(st->pipe->screen,
PIPE_SHADER_VERTEX,
PIPE_SHADER_CAP_PREFERRED_IR)) {
assert(!stp->glsl_to_tgsi);
if (stp->Base.nir)
ralloc_free(stp->Base.nir);
stp->state.type = PIPE_SHADER_IR_NIR;
stp->Base.nir = st_translate_prog_to_nir(st, &stp->Base,
MESA_SHADER_VERTEX);
return true;
}
}
/* Get semantic names and indices. */
@@ -541,27 +554,6 @@ st_translate_vertex_program(struct st_context *st,
st_store_ir_in_disk_cache(st, &stp->Base, false);
}
/* Translate to NIR.
*
* This must be done after the translation to TGSI is done, because
* we'll pass the NIR shader to the driver and the TGSI version to
* the draw module for the select/feedback/rasterpos code.
*/
if (st->pipe->screen->get_shader_param(st->pipe->screen,
PIPE_SHADER_VERTEX,
PIPE_SHADER_CAP_PREFERRED_IR)) {
assert(!stp->glsl_to_tgsi);
nir_shader *nir =
st_translate_prog_to_nir(st, &stp->Base, MESA_SHADER_VERTEX);
if (stp->Base.nir)
ralloc_free(stp->Base.nir);
stp->state.type = PIPE_SHADER_IR_NIR;
stp->Base.nir = nir;
return true;
}
return stp->state.tokens != NULL;
}