summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2020-11-01 13:01:30 -0500
committerMarge Bot <eric+marge@anholt.net>2020-11-18 01:41:25 +0000
commite8c0c80ecd713b1eff30fca423a9c31747669650 (patch)
treec7f1518ca920de839971c2ed8505496aafeca653 /src
parent52c20a6eea3b0c2ac4085be2e7732211aa3d7536 (diff)
mesa: index _RestartIndex with index_size_shift
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7441>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/genX_state_upload.c2
-rw-r--r--src/mesa/main/enable.c2
-rw-r--r--src/mesa/main/mtypes.h2
-rw-r--r--src/mesa/state_tracker/st_draw.c4
-rw-r--r--src/mesa/state_tracker/st_draw_feedback.c2
-rw-r--r--src/mesa/vbo/vbo_minmax_index.c2
-rw-r--r--src/mesa/vbo/vbo_primitive_restart.c2
-rw-r--r--src/mesa/vbo/vbo_save_api.c2
8 files changed, 9 insertions, 9 deletions
diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c
index f1cda59a689..46c9477f054 100644
--- a/src/mesa/drivers/dri/i965/genX_state_upload.c
+++ b/src/mesa/drivers/dri/i965/genX_state_upload.c
@@ -905,7 +905,7 @@ genX(upload_cut_index)(struct brw_context *brw)
brw_batch_emit(brw, GENX(3DSTATE_VF), vf) {
if (ctx->Array._PrimitiveRestart[brw->ib.ib->index_size_shift] && brw->ib.ib) {
vf.IndexedDrawCutIndexEnable = true;
- vf.CutIndex = ctx->Array._RestartIndex[brw->ib.index_size - 1];
+ vf.CutIndex = ctx->Array._RestartIndex[brw->ib.ib->index_size_shift];
}
}
}
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index 4fc8dafefec..0a6632d19a9 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -57,7 +57,7 @@ _mesa_update_derived_primitive_restart_state(struct gl_context *ctx)
ctx->Array._RestartIndex[0] = restart_index[0];
ctx->Array._RestartIndex[1] = restart_index[1];
- ctx->Array._RestartIndex[3] = restart_index[2];
+ ctx->Array._RestartIndex[2] = restart_index[2];
/* Enable primitive restart only when the restart index can have an
* effect. This is required for correctness in AMD GFX8 support.
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 6bdbbb92588..bd0ae969e94 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1633,7 +1633,7 @@ struct gl_array_attrib
GLboolean PrimitiveRestartFixedIndex;
GLboolean _PrimitiveRestart[3]; /**< Enable indexed by index_size_shift. */
GLuint RestartIndex;
- GLuint _RestartIndex[4]; /**< Restart indices for index_size - 1. */
+ GLuint _RestartIndex[3]; /**< Restart indices indexed by index_size_shift. */
/*@}*/
/* GL_ARB_vertex_buffer_object */
diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index ac50dd01914..e189fd9ce93 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -192,7 +192,7 @@ st_draw_vbo(struct gl_context *ctx,
info.index.user = ib->ptr;
}
- info.restart_index = ctx->Array._RestartIndex[info.index_size - 1];
+ info.restart_index = ctx->Array._RestartIndex[ib->index_size_shift];
info.primitive_restart = ctx->Array._PrimitiveRestart[ib->index_size_shift];
}
else {
@@ -266,7 +266,7 @@ st_indirect_draw_vbo(struct gl_context *ctx,
info.index.resource = st_buffer_object(bufobj)->buffer;
draw.start = pointer_to_offset(ib->ptr) >> ib->index_size_shift;
- info.restart_index = ctx->Array._RestartIndex[info.index_size - 1];
+ info.restart_index = ctx->Array._RestartIndex[ib->index_size_shift];
info.primitive_restart = ctx->Array._PrimitiveRestart[ib->index_size_shift];
}
diff --git a/src/mesa/state_tracker/st_draw_feedback.c b/src/mesa/state_tracker/st_draw_feedback.c
index ba77869ee55..5d0d44c6618 100644
--- a/src/mesa/state_tracker/st_draw_feedback.c
+++ b/src/mesa/state_tracker/st_draw_feedback.c
@@ -214,7 +214,7 @@ st_feedback_draw_vbo(struct gl_context *ctx,
index_size, ~0);
info.primitive_restart = ctx->Array._PrimitiveRestart[ib->index_size_shift];
- info.restart_index = ctx->Array._RestartIndex[index_size - 1];
+ info.restart_index = ctx->Array._RestartIndex[ib->index_size_shift];
} else {
info.index_size = 0;
info.has_user_indices = false;
diff --git a/src/mesa/vbo/vbo_minmax_index.c b/src/mesa/vbo/vbo_minmax_index.c
index d92bf19dfc8..914257bf017 100644
--- a/src/mesa/vbo/vbo_minmax_index.c
+++ b/src/mesa/vbo/vbo_minmax_index.c
@@ -328,7 +328,7 @@ vbo_get_minmax_index(struct gl_context *ctx,
{
const GLboolean restart = ctx->Array._PrimitiveRestart[ib->index_size_shift];
const GLuint restartIndex =
- ctx->Array._RestartIndex[(1 << ib->index_size_shift) - 1];
+ ctx->Array._RestartIndex[ib->index_size_shift];
const char *indices;
GLintptr offset = 0;
diff --git a/src/mesa/vbo/vbo_primitive_restart.c b/src/mesa/vbo/vbo_primitive_restart.c
index 3df81108c41..dd6a25b4f54 100644
--- a/src/mesa/vbo/vbo_primitive_restart.c
+++ b/src/mesa/vbo/vbo_primitive_restart.c
@@ -177,7 +177,7 @@ vbo_sw_primitive_restart(struct gl_context *ctx,
GLuint sub_prim_num;
GLuint end_index;
GLuint sub_end_index;
- GLuint restart_index = ctx->Array._RestartIndex[(1 << ib->index_size_shift) - 1];
+ GLuint restart_index = ctx->Array._RestartIndex[ib->index_size_shift];
struct _mesa_prim temp_prim;
GLboolean map_ib = ib->obj && !ib->obj->Mappings[MAP_INTERNAL].Pointer;
const void *ptr;
diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c
index a83c6415704..0b1714f62bb 100644
--- a/src/mesa/vbo/vbo_save_api.c
+++ b/src/mesa/vbo/vbo_save_api.c
@@ -1388,7 +1388,7 @@ array_element(struct gl_context *ctx,
* then we call PrimitiveRestartNV and return.
*/
if (ctx->Array._PrimitiveRestart[index_size_shift] &&
- elt == ctx->Array._RestartIndex[(1 << index_size_shift) - 1]) {
+ elt == ctx->Array._RestartIndex[index_size_shift]) {
CALL_PrimitiveRestartNV(ctx->CurrentServerDispatch, ());
return;
}