#include "main/errors.h"
-#include "main/imports.h"
+
#include "main/image.h"
#include "main/bufferobj.h"
#include "main/macros.h"
if (ctx->Array._PrimitiveRestart) {
unsigned index_size = info->index_size;
- info->restart_index =
- _mesa_primitive_restart_index(ctx, index_size);
+ info->restart_index = ctx->Array._RestartIndex[index_size - 1];
/* Enable primitive restart only when the restart index can have an
* effect. This is required for correctness in radeonsi GFX8 support.
nr_prims);
}
- info.index_size = ib->index_size;
+ info.index_size = 1 << ib->index_size_shift;
info.min_index = min_index;
info.max_index = max_index;
- if (_mesa_is_bufferobj(bufobj)) {
+ if (bufobj) {
/* indices are in a real VBO */
info.has_user_indices = false;
info.index.resource = st_buffer_object(bufobj)->buffer;
if (!info.index.resource)
return;
- start = pointer_to_offset(ib->ptr) / info.index_size;
+ start = pointer_to_offset(ib->ptr) >> ib->index_size_shift;
} else {
/* indices are in user space memory */
info.has_user_indices = true;
struct gl_buffer_object *bufobj = ib->obj;
/* indices are always in a real VBO */
- assert(_mesa_is_bufferobj(bufobj));
+ assert(bufobj);
- info.index_size = ib->index_size;
+ info.index_size = 1 << ib->index_size_shift;
info.index.resource = st_buffer_object(bufobj)->buffer;
- info.start = pointer_to_offset(ib->ptr) / info.index_size;
+ info.start = pointer_to_offset(ib->ptr) >> ib->index_size_shift;
/* Primitive restart is not handled by the VBO module in this case. */
setup_primitive_restart(ctx, &info);