Lines Matching defs:xfer
1953 iris_flush_staging_region(struct pipe_transfer *xfer,
1956 if (!(xfer->usage & PIPE_MAP_WRITE))
1959 struct iris_transfer *map = (void *) xfer;
1964 if (xfer->resource->target == PIPE_BUFFER)
1965 src_box.x += xfer->box.x % IRIS_MAP_BUFFER_ALIGNMENT;
1968 .x = xfer->box.x + flush_box->x,
1969 .y = xfer->box.y + flush_box->y,
1970 .z = xfer->box.z + flush_box->z,
1976 iris_copy_region(map->blorp, map->batch, xfer->resource, xfer->level,
1993 struct pipe_transfer *xfer = &map->base.b;
1994 struct pipe_box *box = &xfer->box;
1995 struct iris_resource *res = (void *) xfer->resource;
1997 unsigned extra = xfer->resource->target == PIPE_BUFFER ?
2005 .nr_samples = xfer->resource->nr_samples,
2006 .nr_storage_samples = xfer->resource->nr_storage_samples,
2011 if (xfer->resource->target == PIPE_BUFFER)
2023 xfer->stride = isl_surf_get_row_pitch_B(surf);
2024 xfer->layer_stride = isl_surf_get_array_pitch(surf);
2027 if (!(xfer->usage & PIPE_MAP_DISCARD_RANGE)) {
2029 xfer->resource, xfer->level, box);
2045 iris_bo_map(map->dbg, staging_bo, xfer->usage & MAP_FLAGS) + extra;
2113 struct pipe_transfer *xfer = &map->base.b;
2114 const struct pipe_box *box = &xfer->box;
2115 struct iris_resource *res = (struct iris_resource *) xfer->resource;
2118 if (xfer->usage & PIPE_MAP_WRITE) {
2121 iris_bo_map(map->dbg, res->bo, (xfer->usage | MAP_RAW) & MAP_FLAGS);
2125 get_image_offset_el(surf, xfer->level, box->z + s, &x0_el, &y0_el);
2133 untiled_s8_map[s * xfer->layer_stride + y * xfer->stride + x];
2145 struct pipe_transfer *xfer = &map->base.b;
2146 const struct pipe_box *box = &xfer->box;
2147 struct iris_resource *res = (struct iris_resource *) xfer->resource;
2150 xfer->stride = surf->row_pitch_B;
2151 xfer->layer_stride = xfer->stride * box->height;
2157 map->buffer = map->ptr = malloc(xfer->layer_stride * box->depth);
2165 if (!(xfer->usage & PIPE_MAP_DISCARD_RANGE)) {
2168 iris_bo_map(map->dbg, res->bo, (xfer->usage | MAP_RAW) & MAP_FLAGS);
2172 get_image_offset_el(surf, xfer->level, box->z + s, &x0_el, &y0_el);
2179 untiled_s8_map[s * xfer->layer_stride + y * xfer->stride + x] =
2217 struct pipe_transfer *xfer = &map->base.b;
2218 const struct pipe_box *box = &xfer->box;
2219 struct iris_resource *res = (struct iris_resource *) xfer->resource;
2224 if (xfer->usage & PIPE_MAP_WRITE) {
2226 iris_bo_map(map->dbg, res->bo, (xfer->usage | MAP_RAW) & MAP_FLAGS);
2230 tile_extents(surf, box, xfer->level, s, &x1, &x2, &y1, &y2);
2232 void *ptr = map->ptr + s * xfer->layer_stride;
2235 surf->row_pitch_B, xfer->stride,
2246 struct pipe_transfer *xfer = &map->base.b;
2247 const struct pipe_box *box = &xfer->box;
2248 struct iris_resource *res = (struct iris_resource *) xfer->resource;
2251 xfer->stride = ALIGN(surf->row_pitch_B, 16);
2252 xfer->layer_stride = xfer->stride * box->height;
2255 tile_extents(surf, box, xfer->level, 0, &x1, &x2, &y1, &y2);
2262 os_malloc_aligned(xfer->layer_stride * box->depth, 16);
2268 if (!(xfer->usage & PIPE_MAP_DISCARD_RANGE)) {
2270 iris_bo_map(map->dbg, res->bo, (xfer->usage | MAP_RAW) & MAP_FLAGS);
2274 tile_extents(surf, box, xfer->level, s, &x1, &x2, &y1, &y2);
2277 void *ptr = map->ptr + s * xfer->layer_stride;
2279 isl_memcpy_tiled_to_linear(x1, x2, y1, y2, ptr, src, xfer->stride,
2291 struct pipe_transfer *xfer = &map->base.b;
2292 struct pipe_box *box = &xfer->box;
2293 struct iris_resource *res = (struct iris_resource *) xfer->resource;
2296 iris_bo_map(map->dbg, res->bo, xfer->usage & MAP_FLAGS);
2299 xfer->stride = 0;
2300 xfer->layer_stride = 0;
2312 get_image_offset_el(surf, xfer->level, box->z, &x0_el, &y0_el);
2317 xfer->stride = isl_surf_get_row_pitch_B(surf);
2318 xfer->layer_stride = isl_surf_get_array_pitch(surf);
2320 map->ptr = ptr + y0_el * xfer->stride + x0_el * cpp;
2405 struct pipe_transfer *xfer = &map->base.b;
2409 pipe_resource_reference(&xfer->resource, resource);
2410 xfer->level = level;
2411 xfer->usage = usage;
2412 xfer->box = *box;
2413 *ptransfer = xfer;
2488 struct pipe_transfer *xfer,
2492 struct iris_resource *res = (struct iris_resource *) xfer->resource;
2493 struct iris_transfer *map = (void *) xfer;
2496 iris_flush_staging_region(xfer, box);
2509 iris_transfer_unmap(struct pipe_context *ctx, struct pipe_transfer *xfer)
2512 struct iris_transfer *map = (void *) xfer;
2514 if (!(xfer->usage & (PIPE_MAP_FLUSH_EXPLICIT |
2518 .width = xfer->box.width,
2519 .height = xfer->box.height,
2520 .depth = xfer->box.depth,
2522 iris_transfer_flush_region(ctx, xfer, &flush_box);
2528 pipe_resource_reference(&xfer->resource, NULL);