nvc0: don't try to go through the push path for indirect draws
authorIlia Mirkin <imirkin@alum.mit.edu>
Sun, 15 May 2016 05:26:37 +0000 (01:26 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sun, 15 May 2016 14:48:39 +0000 (10:48 -0400)
This fixes

dEQP-GLES31.functional.draw_indirect.draw_elements_indirect.*.default_attribute

These tests were causing a const vbo to be set up, and were small enough
draws that the logic was trying to go via the push path (which emits
data directly into the cmd stream rather than uploading a user vbo).

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c

index 4d9cd5752b565baecfca374864ab65504721de35..888c094e03482b3207a1bd491ea90a15de24079f 100644 (file)
@@ -948,7 +948,8 @@ nvc0_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info)
     * if index count is larger and we expect repeated vertices, suggest upload.
     */
    nvc0->vbo_push_hint =
-      info->indexed && (nvc0->vb_elt_limit >= (info->count * 2));
+      !info->indirect && info->indexed &&
+      (nvc0->vb_elt_limit >= (info->count * 2));
 
    /* Check whether we want to switch vertex-submission mode. */
    if (nvc0->vbo_user && !(nvc0->dirty_3d & (NVC0_NEW_3D_ARRAYS | NVC0_NEW_3D_VERTEX))) {