i965: Implement all_varyings_in_vbos in terms of Array._DrawVAO.

Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
This commit is contained in:
Mathias Fröhlich 2018-04-01 20:18:36 +02:00 committed by Mathias Fröhlich
parent 79eb6ab7b6
commit 172c9a908f
1 changed files with 2 additions and 15 deletions

View File

@ -25,6 +25,7 @@
#include <sys/errno.h>
#include "main/arrayobj.h"
#include "main/blend.h"
#include "main/context.h"
#include "main/condrender.h"
@ -917,20 +918,6 @@ retry:
}
static bool
all_varyings_in_vbos(const struct gl_vertex_array *arrays)
{
GLuint i;
for (i = 0; i < VERT_ATTRIB_MAX; i++)
if (arrays[i].BufferBinding->Stride &&
arrays[i].BufferBinding->BufferObj->Name == 0)
return false;
return true;
}
void
brw_draw_prims(struct gl_context *ctx,
@ -982,7 +969,7 @@ brw_draw_prims(struct gl_context *ctx,
* get the minimum and maximum of their index buffer so we know what range
* to upload.
*/
if (!index_bounds_valid && !all_varyings_in_vbos(arrays)) {
if (!index_bounds_valid && _mesa_draw_user_array_bits(ctx) != 0) {
perf_debug("Scanning index buffer to compute index buffer bounds. "
"Use glDrawRangeElements() to avoid this.\n");
vbo_get_minmax_indices(ctx, prims, ib, &min_index, &max_index, nr_prims);