gallium: Drop software-only primitive restart support.
authorEric Anholt <eric@anholt.net>
Thu, 4 Sep 2014 20:57:23 +0000 (13:57 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 30 Sep 2014 17:59:58 +0000 (10:59 -0700)
The drivers not flagging primitive restart support are r300 swtcl, svga,
nv30, and vc4.

The point of primitive restart is to slightly reduce draw call overhead
for apps by batching multiple draws.  If we do an extra pass to read the
index buffer and split back into multiple draws, we've entirely missed the
point.  This is particularly bad for drivers that otherwise have hardware
IB reads, where the readback is probably uncached.

Reviewed-by: Rob Clark <robdclark@gmail.com>
src/mesa/state_tracker/st_extensions.c

index 681723ab0b41a254dcf05d2a552d8b65fb86ed7e..5dd8278007ed1b64916aad9db6935988b32338ac 100644 (file)
@@ -714,9 +714,8 @@ void st_init_extensions(struct pipe_screen *screen,
 #endif
    }
 
-   extensions->NV_primitive_restart = GL_TRUE;
-   if (!screen->get_param(screen, PIPE_CAP_PRIMITIVE_RESTART)) {
-      consts->PrimitiveRestartInSoftware = GL_TRUE;
+   if (screen->get_param(screen, PIPE_CAP_PRIMITIVE_RESTART)) {
+      extensions->NV_primitive_restart = GL_TRUE;
    }
 
    /* ARB_color_buffer_float. */