diff options
| -rw-r--r-- | src/gallium/drivers/r600/r600_state_common.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index c647e77b37..1333808c66 100644 --- a/src/gallium/drivers/r600/r600_state_common.c +++ b/src/gallium/drivers/r600/r600_state_common.c @@ -187,11 +187,13 @@ void r600_set_vertex_buffers(struct pipe_context *ctx, unsigned count,  			rctx->any_user_vbs = TRUE;  		pipe_resource_reference(&rctx->vertex_buffer[i].buffer, buffers[i].buffer); +		/* The stride of zero means we will be fetching only the first +		 * vertex, so don't care about max_index. */ +		if (!vbo->stride) +			continue; +  		if (vbo->max_index == ~0) { -			if (!vbo->stride) -				vbo->max_index = 1; -			else -				vbo->max_index = (vbo->buffer->width0 - vbo->buffer_offset) / vbo->stride; +			vbo->max_index = (vbo->buffer->width0 - vbo->buffer_offset) / vbo->stride;  		}  		max_index = MIN2(vbo->max_index, max_index);  	}  | 
