freedreno/a6xx: bail instead of crash for compile fails
authorRob Clark <robdclark@chromium.org>
Sat, 11 Jul 2020 20:27:36 +0000 (13:27 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 14 Jul 2020 23:26:15 +0000 (23:26 +0000)
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5907>

src/gallium/drivers/freedreno/a6xx/fd6_draw.c

index dd9c75051c9487264144815b7ee3036945540504..810bdf0ca79870d7e70b66a89949ef7eb8507f5d 100644 (file)
@@ -178,10 +178,16 @@ fd6_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info,
                .primitive_restart = info->primitive_restart && info->index_size,
        };
 
+       if (!(ctx->prog.vs && ctx->prog.fs))
+               return false;
+
        if (info->mode == PIPE_PRIM_PATCHES) {
                emit.key.hs = ctx->prog.hs;
                emit.key.ds = ctx->prog.ds;
 
+               if (!(ctx->prog.hs && ctx->prog.ds))
+                       return false;
+
                shader_info *ds_info = &emit.key.ds->nir->info;
                emit.key.key.tessellation = ir3_tess_mode(ds_info->tess.primitive_mode);
        }