radv: enable nir component packing

SaschaWillems Vulkan demo tessellation:

~4000fps -> ~4600fps

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Timothy Arceri 2017-10-18 13:48:41 +11:00
parent 1c9c42d16b
commit aecb9bec87
1 changed files with 6 additions and 0 deletions

View File

@ -1828,6 +1828,7 @@ void radv_create_shaders(struct radv_pipeline *pipeline,
last = i;
}
int prev = -1;
for (unsigned i = 0; i < MESA_SHADER_STAGES; ++i) {
const VkPipelineShaderStageCreateInfo *stage = pStages[i];
@ -1858,6 +1859,11 @@ void radv_create_shaders(struct radv_pipeline *pipeline,
nir_lower_io_to_scalar_early(nir[i], mask);
radv_optimize_nir(nir[i]);
}
if (prev != -1) {
nir_compact_varyings(nir[prev], nir[i], true);
}
prev = i;
}
if (nir[MESA_SHADER_TESS_CTRL]) {