When we have both TES and GS, the TES needs to chain to the VS with
chmask and chsh GS just like the VS does to either TCS or GS.
Signed-off-by: Kristian H. Kristensen <hoegsberg@google.com>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Rob Clark <robdclark@gmail.com>
* be read by the HS. Then it resets execution mask (chmask) and chains
* to the next shader (chsh).
*/
- if (ctx->so->type == MESA_SHADER_VERTEX && ctx->so->key.has_gs) {
+ if ((ctx->so->type == MESA_SHADER_VERTEX &&
+ (ctx->so->key.has_gs || ctx->so->key.tessellation)) ||
+ (ctx->so->type == MESA_SHADER_TESS_EVAL && ctx->so->key.has_gs)) {
struct ir3_instruction *chmask =
ir3_CHMASK(ctx->block);
chmask->barrier_class = IR3_BARRIER_EVERYTHING;