diff options
author | Marek Olšák <marek.olsak@amd.com> | 2020-11-01 13:01:30 -0500 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-11-18 01:41:25 +0000 |
commit | e8c0c80ecd713b1eff30fca423a9c31747669650 (patch) | |
tree | c7f1518ca920de839971c2ed8505496aafeca653 /src | |
parent | 52c20a6eea3b0c2ac4085be2e7732211aa3d7536 (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.c | 2 | ||||
-rw-r--r-- | src/mesa/main/enable.c | 2 | ||||
-rw-r--r-- | src/mesa/main/mtypes.h | 2 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_draw.c | 4 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_draw_feedback.c | 2 | ||||
-rw-r--r-- | src/mesa/vbo/vbo_minmax_index.c | 2 | ||||
-rw-r--r-- | src/mesa/vbo/vbo_primitive_restart.c | 2 | ||||
-rw-r--r-- | src/mesa/vbo/vbo_save_api.c | 2 |
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; } |