Lines Matching defs:blit

763  * Check if a blit() command can be implemented with a resource_copy_region().
765 * the blit src/dst formats are identical, ignoring the resource formats.
769 util_can_blit_via_copy_region(const struct pipe_blit_info *blit,
775 src_desc = util_format_description(blit->src.resource->format);
776 dst_desc = util_format_description(blit->dst.resource->format);
780 if (blit->src.format != blit->dst.format) {
786 if (blit->src.resource->format != blit->src.format ||
787 blit->dst.resource->format != blit->dst.format ||
793 unsigned mask = util_format_get_mask(blit->dst.format);
796 if ((blit->mask & mask) != mask ||
797 blit->filter != PIPE_TEX_FILTER_NEAREST ||
798 blit->scissor_enable ||
799 blit->num_window_rectangles > 0 ||
800 blit->alpha_blend ||
801 (blit->render_condition_enable && render_condition_bound)) {
806 assert(blit->dst.box.width >= 1);
807 assert(blit->dst.box.height >= 1);
808 assert(blit->dst.box.depth >= 1);
811 if (blit->src.box.width != blit->dst.box.width ||
812 blit->src.box.height != blit->dst.box.height ||
813 blit->src.box.depth != blit->dst.box.depth) {
818 if (!is_box_inside_resource(blit->src.resource, &blit->src.box,
819 blit->src.level) ||
820 !is_box_inside_resource(blit->dst.resource, &blit->dst.box,
821 blit->dst.level)) {
826 if (get_sample_count(blit->src.resource) !=
827 get_sample_count(blit->dst.resource)) {
836 * Try to do a blit using resource_copy_region. The function calls
837 * resource_copy_region if the blit description is compatible with it.
839 * It returns TRUE if the blit was done using resource_copy_region.
842 * codepath for the blit operation. (e.g. by using u_blitter)
846 const struct pipe_blit_info *blit,
849 if (util_can_blit_via_copy_region(blit, FALSE, render_condition_bound)) {
850 ctx->resource_copy_region(ctx, blit->dst.resource, blit->dst.level,
851 blit->dst.box.x, blit->dst.box.y,
852 blit->dst.box.z,
853 blit->src.resource, blit->src.level,
854 &blit->src.box);