i965/nir: Do lower_io late for fragment shaders
The Vulkan driver wants to be able to delete fragment outputs that are beyond key.nr_color_regions; this is a lot easier if we lower outputs at specialization time rather than link time. (Rationale added to commit message by Ken) Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
committed by
Kenneth Graunke
parent
7428e6f86a
commit
b3cb6e78aa
@@ -5594,6 +5594,7 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
|
||||
nir_shader *shader = nir_shader_clone(mem_ctx, src_shader);
|
||||
shader = brw_nir_apply_sampler_key(shader, compiler->devinfo, &key->tex,
|
||||
true);
|
||||
shader = brw_nir_lower_io(shader, compiler->devinfo, true, false, NULL);
|
||||
shader = brw_postprocess_nir(shader, compiler->devinfo, true);
|
||||
|
||||
/* key->alpha_test_func means simulating alpha testing via discards,
|
||||
|
||||
@@ -627,7 +627,8 @@ brw_create_nir(struct brw_context *brw,
|
||||
|
||||
if (nir->stage != MESA_SHADER_VERTEX &&
|
||||
nir->stage != MESA_SHADER_TESS_CTRL &&
|
||||
nir->stage != MESA_SHADER_TESS_EVAL) {
|
||||
nir->stage != MESA_SHADER_TESS_EVAL &&
|
||||
nir->stage != MESA_SHADER_FRAGMENT) {
|
||||
nir = brw_nir_lower_io(nir, devinfo, is_scalar, false, NULL);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user