util/vbuf: flag fallback_always if any prim types are missing from restart modes
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 25 Jun 2021 14:45:31 +0000 (10:45 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 28 Jun 2021 17:05:53 +0000 (17:05 +0000)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11608>

src/gallium/auxiliary/util/u_vbuf.c

index b1307f6..f97317c 100644 (file)
@@ -310,6 +310,8 @@ void u_vbuf_get_caps(struct pipe_screen *screen, struct u_vbuf_caps *caps,
       caps->rewrite_restart_index = screen->get_param(screen, PIPE_CAP_EMULATE_NONFIXED_PRIMITIVE_RESTART);
       caps->supported_restart_modes = screen->get_param(screen, PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART);
       caps->supported_restart_modes |= BITFIELD_BIT(PIPE_PRIM_PATCHES);
+      if (caps->supported_restart_modes != BITFIELD_MASK(PIPE_PRIM_MAX))
+         caps->fallback_always = true;
       caps->fallback_always |= caps->rewrite_restart_index;
    }
    caps->supported_prim_modes = screen->get_param(screen, PIPE_CAP_SUPPORTED_PRIM_MODES);