We still need to recompile the passthrough shader when this value
changes, as it also affects the output vertex count. But otherwise,
we can eliminate recompiles on Gen8+.
We probably want to do this for Gen7 as well, but that requires
rewriting the input release code to use a loop, which is a trade-off
I'd need to consider in more detail.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com>
Cc: mesa-stable@lists.freedesktop.org
ctx->Const.MaxClipPlanes = 8;
ctx->Const.LowerTessLevel = true;
+ ctx->Const.LowerTCSPatchVerticesIn = brw->gen >= 8;
ctx->Const.LowerTESPatchVerticesIn = true;
ctx->Const.PrimitiveRestartForPatches = true;
memset(&key, 0, sizeof(key));
- key.input_vertices = ctx->TessCtrlProgram.patch_vertices;
+ if (brw->gen < 8 || !tcp)
+ key.input_vertices = ctx->TessCtrlProgram.patch_vertices;
key.outputs_written = per_vertex_slots;
key.patch_outputs_written = per_patch_slots;
brw_setup_tex_for_precompile(brw, &key.tex, prog);
/* Guess that the input and output patches have the same dimensionality. */
- key.input_vertices = shader_prog->TessCtrl.VerticesOut;
+ if (brw->gen < 8)
+ key.input_vertices = shader_prog->TessCtrl.VerticesOut;
key.tes_primitive_mode =
shader_prog->_LinkedShaders[MESA_SHADER_TESS_EVAL] ?