[Mesa-dev] [PATCH 1/2] vbo: set min_index = 0 so gallium can use the value directly

Marek Olšák maraeo at gmail.com
Fri Apr 28 17:50:57 UTC 2017


Ping

On Wed, Apr 26, 2017 at 11:35 AM, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> We could also remove index_bounds_valid and use max_index != ~0 instead.
> Opinions on that are welcome.
> ---
>  src/mesa/vbo/vbo_context.c    | 2 +-
>  src/mesa/vbo/vbo_exec_array.c | 6 +++---
>  2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/vbo/vbo_context.c b/src/mesa/vbo/vbo_context.c
> index 7022fe9..384e405 100644
> --- a/src/mesa/vbo/vbo_context.c
> +++ b/src/mesa/vbo/vbo_context.c
> @@ -161,21 +161,21 @@ vbo_draw_indirect_prims(struct gl_context *ctx,
>     prim[draw_count - 1].end = 1;
>     for (i = 0; i < draw_count; ++i, indirect_offset += stride) {
>        prim[i].mode = mode;
>        prim[i].indexed = !!ib;
>        prim[i].indirect_offset = indirect_offset;
>        prim[i].is_indirect = 1;
>        prim[i].draw_id = i;
>     }
>
>     vbo->draw_prims(ctx, prim, draw_count,
> -                   ib, false, ~0, ~0,
> +                   ib, false, 0, ~0,
>                     NULL, 0,
>                     ctx->DrawIndirectBuffer);
>
>     free(prim);
>  }
>
>
>  GLboolean _vbo_CreateContext( struct gl_context *ctx )
>  {
>     struct vbo_context *vbo = CALLOC_STRUCT(vbo_context);
> diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
> index aecfad0..15382ea 100644
> --- a/src/mesa/vbo/vbo_exec_array.c
> +++ b/src/mesa/vbo/vbo_exec_array.c
> @@ -1315,21 +1315,21 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode,
>           prim[i].base_instance = 0;
>           prim[i].draw_id = i;
>           prim[i].is_indirect = 0;
>           if (basevertex != NULL)
>              prim[i].basevertex = basevertex[i];
>           else
>              prim[i].basevertex = 0;
>        }
>
>        vbo->draw_prims(ctx, prim, primcount, &ib,
> -                      false, ~0, ~0, NULL, 0, NULL);
> +                      false, 0, ~0, NULL, 0, NULL);
>     }
>     else {
>        /* render one prim at a time */
>        for (i = 0; i < primcount; i++) {
>           if (count[i] == 0)
>              continue;
>           ib.count = count[i];
>           ib.index_size = vbo_sizeof_ib_type(type);
>           ib.obj = ctx->Array.VAO->IndexBufferObj;
>           ib.ptr = indices[i];
> @@ -1344,21 +1344,21 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode,
>           prim[0].indexed = 1;
>           prim[0].num_instances = 1;
>           prim[0].base_instance = 0;
>           prim[0].draw_id = i;
>           prim[0].is_indirect = 0;
>           if (basevertex != NULL)
>              prim[0].basevertex = basevertex[i];
>           else
>              prim[0].basevertex = 0;
>
> -         vbo->draw_prims(ctx, prim, 1, &ib, false, ~0, ~0, NULL, 0, NULL);
> +         vbo->draw_prims(ctx, prim, 1, &ib, false, 0, ~0, NULL, 0, NULL);
>        }
>     }
>
>     free(prim);
>
>     if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
>        _mesa_flush(ctx);
>     }
>  }
>
> @@ -1436,21 +1436,21 @@ vbo_draw_transform_feedback(struct gl_context *ctx, GLenum mode,
>     prim[0].end = 1;
>     prim[0].mode = mode;
>     prim[0].num_instances = numInstances;
>     prim[0].base_instance = 0;
>     prim[0].is_indirect = 0;
>
>     /* Maybe we should do some primitive splitting for primitive restart
>      * (like in DrawArrays), but we have no way to know how many vertices
>      * will be rendered. */
>
> -   vbo->draw_prims(ctx, prim, 1, NULL, GL_FALSE, ~0, ~0, obj, stream, NULL);
> +   vbo->draw_prims(ctx, prim, 1, NULL, GL_FALSE, 0, ~0, obj, stream, NULL);
>
>     if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
>        _mesa_flush(ctx);
>     }
>  }
>
>
>  /**
>   * Like DrawArrays, but take the count from a transform feedback object.
>   * \param mode  GL_POINTS, GL_LINES, GL_TRIANGLE_STRIP, etc.
> --
> 2.7.4
>


More information about the mesa-dev mailing list