i965: lower gl_PatchVerticesIn to a uniform

We want this here instead of nir_lower_system_values because for
Vulkan we don't want this lowering to take place.

v2: do not try to handle it as a system value directly for the SPIR-V
    path. In GL we rather handle it as a uniform like we do for the
    GLSL path (Jason).

v3: do this also for the TessEval stage (Jason)

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Iago Toral Quiroga
2018-01-09 09:29:17 +01:00
parent 4317c848b9
commit dae856eced
+8
View File
@@ -88,6 +88,14 @@ brw_create_nir(struct brw_context *brw,
}
nir_validate_shader(nir);
/* Lower PatchVerticesIn from system value to uniform. This needs to
* happen before brw_preprocess_nir, since that will lower system values.
*/
if ((stage == MESA_SHADER_TESS_CTRL && brw->screen->devinfo.gen >= 8) ||
stage == MESA_SHADER_TESS_EVAL) {
brw_nir_lower_patch_vertices_in_to_uniform(nir);
}
nir = brw_preprocess_nir(brw->screen->compiler, nir);
if (stage == MESA_SHADER_FRAGMENT) {