From 8ebabfe2b3bf29d02c66e3f953eebad712b42207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 21 Nov 2020 22:08:50 -0500 Subject: [PATCH] virgl: fix handling draw info index_bias is undefined if index_size == 0. index bounds are undefined if index_bounds_valid == false. Reviewed-by: Gert Wollny Part-of: --- src/gallium/drivers/virgl/virgl_encode.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/virgl/virgl_encode.c b/src/gallium/drivers/virgl/virgl_encode.c index d9f82e2d602..47a44c3489f 100644 --- a/src/gallium/drivers/virgl/virgl_encode.c +++ b/src/gallium/drivers/virgl/virgl_encode.c @@ -723,12 +723,12 @@ int virgl_encoder_draw_vbo(struct virgl_context *ctx, virgl_encoder_write_dword(ctx->cbuf, info->mode); virgl_encoder_write_dword(ctx->cbuf, !!info->index_size); virgl_encoder_write_dword(ctx->cbuf, info->instance_count); - virgl_encoder_write_dword(ctx->cbuf, info->index_bias); + virgl_encoder_write_dword(ctx->cbuf, info->index_size ? info->index_bias : 0); virgl_encoder_write_dword(ctx->cbuf, info->start_instance); virgl_encoder_write_dword(ctx->cbuf, info->primitive_restart); virgl_encoder_write_dword(ctx->cbuf, info->restart_index); - virgl_encoder_write_dword(ctx->cbuf, info->min_index); - virgl_encoder_write_dword(ctx->cbuf, info->max_index); + virgl_encoder_write_dword(ctx->cbuf, info->index_bounds_valid ? info->min_index : 0); + virgl_encoder_write_dword(ctx->cbuf, info->index_bounds_valid ? info->max_index : ~0); if (indirect && indirect->count_from_stream_output) virgl_encoder_write_dword(ctx->cbuf, indirect->count_from_stream_output->buffer_size); else