etnaviv: Don't try to use the index buffer if size is zero
If info->index_size is zero, info->index will point to uninitialized
memory.
Fatal signal 11 (SIGSEGV), code 2, fault addr 0xab5d07a3 in tid 20456 (surfaceflinger)
lst: Remove useless indexbuf conditional in the index_size != 0 case.
Fixes: 330d0607ed
("gallium: remove pipe_index_buffer and set_index_buffer")
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
This commit is contained in:
parent
d529d5ff16
commit
106b2786b6
|
@ -178,24 +178,26 @@ etna_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info)
|
|||
|
||||
/* Upload a user index buffer. */
|
||||
unsigned index_offset = 0;
|
||||
struct pipe_resource *indexbuf = info->has_user_indices ? NULL : info->index.resource;
|
||||
if (info->index_size && info->has_user_indices &&
|
||||
!util_upload_index_buffer(pctx, info, &indexbuf, &index_offset)) {
|
||||
BUG("Index buffer upload failed.");
|
||||
return;
|
||||
}
|
||||
struct pipe_resource *indexbuf = NULL;
|
||||
|
||||
if (info->index_size) {
|
||||
indexbuf = info->has_user_indices ? NULL : info->index.resource;
|
||||
if (info->has_user_indices &&
|
||||
!util_upload_index_buffer(pctx, info, &indexbuf, &index_offset)) {
|
||||
BUG("Index buffer upload failed.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (info->index_size && indexbuf) {
|
||||
ctx->index_buffer.FE_INDEX_STREAM_BASE_ADDR.bo = etna_resource(indexbuf)->bo;
|
||||
ctx->index_buffer.FE_INDEX_STREAM_BASE_ADDR.offset = index_offset;
|
||||
ctx->index_buffer.FE_INDEX_STREAM_BASE_ADDR.flags = ETNA_RELOC_READ;
|
||||
ctx->index_buffer.FE_INDEX_STREAM_CONTROL = translate_index_size(info->index_size);
|
||||
ctx->dirty |= ETNA_DIRTY_INDEX_BUFFER;
|
||||
}
|
||||
|
||||
if (info->index_size && !ctx->index_buffer.FE_INDEX_STREAM_BASE_ADDR.bo) {
|
||||
BUG("Unsupported or no index buffer");
|
||||
return;
|
||||
if (!ctx->index_buffer.FE_INDEX_STREAM_BASE_ADDR.bo) {
|
||||
BUG("Unsupported or no index buffer");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
struct etna_shader_key key = {};
|
||||
|
|
Loading…
Reference in New Issue