- assert(box->x + box->width <= u_minify(resource->width0, sr.level));
- assert(box->y + box->height <= u_minify(resource->height0, sr.level));
- assert(box->z + box->depth <= u_minify(resource->depth0, sr.level));
-
- spt = CALLOC_STRUCT(softpipe_transfer);
- if (spt) {
- struct pipe_transfer *pt = &spt->base;
- enum pipe_format format = resource->format;
- int nblocksy = util_format_get_nblocksy(resource->format,
- u_minify(resource->height0, sr.level));
- pipe_resource_reference(&pt->resource, resource);
- pt->sr = sr;
- pt->usage = usage;
- pt->box = *box;
- pt->stride = sptex->stride[sr.level];
-
- spt->offset = sptex->level_offset[sr.level];
-
- if (resource->target == PIPE_TEXTURE_CUBE) {
- spt->offset += sr.face * nblocksy * pt->stride;
+ assert(box->x + box->width <= (int) u_minify(resource->width0, level));
+ if (resource->target == PIPE_TEXTURE_1D_ARRAY) {
+ assert(box->y + box->height <= (int) resource->array_size);
+ }
+ else {
+ assert(box->y + box->height <= (int) u_minify(resource->height0, level));
+ if (resource->target == PIPE_TEXTURE_2D_ARRAY) {
+ assert(box->z + box->depth <= (int) resource->array_size);