diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c index c2a2a33..6b3102f 100644 --- a/src/vrend_renderer.c +++ b/src/vrend_renderer.c @@ -3719,13 +3719,12 @@ static bool check_iov_bounds(struct vrend_resource *res, const struct vrend_transfer_info *info, struct iovec *iov, int num_iovs) { - int elsize = util_format_get_blocksize(res->base.format); GLuint send_size; GLuint iovsize = vrend_get_iovec_size(iov, num_iovs); GLuint valid_stride, valid_layer_stride; /* validate the send size */ - valid_stride = info->box->width * elsize; + valid_stride = util_format_get_stride(res->base.format, info->box->width); if (info->stride) { /* only validate passed in stride for boxes with height */ if (info->box->height > 1) { @@ -3735,8 +3734,8 @@ static bool check_iov_bounds(struct vrend_resource *res, } } - valid_layer_stride = util_format_get_nblocks(res->base.format, valid_stride / elsize, - info->box->height) * elsize; + valid_layer_stride = util_format_get_2d_size(res->base.format, valid_stride, + info->box->height); /* layer stride only makes sense for 3d,cube and arrays */ if (info->layer_stride) {