Lines Matching refs:src

472                  unsigned int dst_offset, struct etna_resource *src,
479 assert(src->layout == ETNA_LAYOUT_TILED);
481 assert(src->base.nr_samples == 0);
484 tile_size = util_format_get_blocksize(blit_info->src.format) * 4 * 4;
486 smap = etna_bo_map(src->bo);
497 etna_bo_cpu_prep(src->bo, DRM_ETNA_PREP_READ);
500 for (int y = 0; y < blit_info->src.box.height; y += 4) {
501 memcpy(drow, srow, tile_size * blit_info->src.box.width);
507 etna_bo_cpu_fini(src->bo);
565 static bool msaa_config(const struct pipe_resource *src,
573 assert(src->nr_samples <= 4);
576 translate_samples_to_xyscale(src->nr_samples, &src_xscale, &src_yscale);
594 struct etna_resource *src = etna_resource(blit_info->src.resource);
600 assert(blit_info->src.level <= src->base.last_level);
603 if (!msaa_config(&src->base, &dst->base, &msaa_xscale, &msaa_yscale)) {
612 if (blit_info->dst.box.width != blit_info->src.box.width ||
613 blit_info->dst.box.height != blit_info->src.box.height) {
615 blit_info->src.box.width, blit_info->src.box.height,
632 if (blit_info->src.format != blit_info->dst.format)
640 blit_info->dst.box.depth != blit_info->src.box.depth ||
647 etna_get_rs_alignment_mask(ctx, src->layout, &w_mask, &h_mask);
648 if ((blit_info->src.box.x & w_mask) || (blit_info->src.box.y & h_mask))
655 struct etna_resource_level *src_lev = &src->levels[blit_info->src.level];
660 assert((blit_info->src.box.x + blit_info->src.box.width) * msaa_xscale <= src_lev->padded_width);
661 assert((blit_info->src.box.y + blit_info->src.box.height) * msaa_yscale <= src_lev->padded_height);
666 blit_info->src.box.z * src_lev->layer_stride +
667 etna_compute_tileoffset(&blit_info->src.box,
668 blit_info->src.format,
670 src->layout);
687 unsigned int width = blit_info->src.box.width * msaa_xscale;
688 unsigned int height = blit_info->src.box.height * msaa_yscale;
715 if (src->base.bind & PIPE_BIND_RENDER_TARGET ||
716 src->base.bind & PIPE_BIND_DEPTH_STENCIL) {
730 src_lev->ts_offset + blit_info->src.box.z * src_lev->ts_layer_stride;
742 reloc.bo = src->ts_bo;
748 reloc.bo = src->bo;
750 blit_info->src.box.z * src_lev->layer_stride;
766 .source_tiling = src->layout,
767 .source = src->bo,
783 .swap_rb = translate_rb_src_dst_swap(src->base.format, dst->base.format),
793 resource_read(ctx, &src->base);
802 if (src->layout == ETNA_LAYOUT_TILED && dst->layout == ETNA_LAYOUT_TILED) {
803 if ((etna_resource_status(ctx, src) & ETNA_PENDING_WRITE) ||
806 return etna_manual_blit(dst, dst_lev, dst_offset, src, src_lev, src_offset, blit_info);
817 * even CPU copy block of pixels from info->src to info->dst
830 if (blit_info->src.resource->nr_samples > 1 &&
832 !util_format_is_depth_or_stencil(blit_info->src.resource->format) &&
833 !util_format_is_pure_integer(blit_info->src.resource->format)) {