Lines Matching refs:info
695 static boolean r300_is_simple_msaa_resolve(const struct pipe_blit_info *info)
697 unsigned dst_width = u_minify(info->dst.resource->width0, info->dst.level);
698 unsigned dst_height = u_minify(info->dst.resource->height0, info->dst.level);
700 return info->src.resource->nr_samples > 1 &&
701 info->dst.resource->nr_samples <= 1 &&
702 info->dst.resource->format == info->src.resource->format &&
703 info->dst.resource->format == info->dst.format &&
704 info->src.resource->format == info->src.format &&
705 !info->scissor_enable &&
706 info->mask == PIPE_MASK_RGBA &&
707 dst_width == info->src.resource->width0 &&
708 dst_height == info->src.resource->height0 &&
709 info->dst.box.x == 0 &&
710 info->dst.box.y == 0 &&
711 info->dst.box.width == dst_width &&
712 info->dst.box.height == dst_height &&
713 info->src.box.x == 0 &&
714 info->src.box.y == 0 &&
715 info->src.box.width == dst_width &&
716 info->src.box.height == dst_height &&
717 (r300_resource(info->dst.resource)->tex.microtile != RADEON_LAYOUT_LINEAR ||
718 r300_resource(info->dst.resource)->tex.macrotile[info->dst.level] != RADEON_LAYOUT_LINEAR);
743 /* COLORPITCH should contain the tiling info of the resolve buffer.
768 const struct pipe_blit_info *info)
775 assert(info->src.level == 0);
776 assert(info->src.box.z == 0);
777 assert(info->src.box.depth == 1);
778 assert(info->dst.box.depth == 1);
780 if (r300_is_simple_msaa_resolve(info)) {
781 r300_simple_msaa_resolve(pipe, info->dst.resource, info->dst.level,
782 info->dst.box.z, info->src.resource,
783 info->src.format);
790 templ.format = info->src.resource->format;
791 templ.width0 = info->src.resource->width0;
792 templ.height0 = info->src.resource->height0;
801 r300_simple_msaa_resolve(pipe, tmp, 0, 0, info->src.resource,
802 info->src.format);
805 blit = *info;
822 struct pipe_blit_info info = *blit;
828 if (util_format_is_srgb(info.src.format)) {
829 info.src.format = util_format_linear(info.src.format);
830 info.dst.format = util_format_linear(info.dst.format);
834 if (info.src.resource->nr_samples > 1 &&
835 !util_format_is_depth_or_stencil(info.src.resource->format)) {
836 r300_msaa_resolve(pipe, &info);
841 if (info.src.resource->nr_samples > 1) {
847 if ((info.mask & PIPE_MASK_S) &&
848 info.src.format == PIPE_FORMAT_S8_UINT_Z24_UNORM &&
849 info.dst.format == PIPE_FORMAT_S8_UINT_Z24_UNORM) {
850 if (info.dst.resource->nr_samples > 1) {
852 info.mask &= ~PIPE_MASK_S;
853 if (!(info.mask & PIPE_MASK_Z)) {
858 info.src.format = PIPE_FORMAT_B8G8R8A8_UNORM;
859 info.dst.format = PIPE_FORMAT_B8G8R8A8_UNORM;
860 if (info.mask & PIPE_MASK_Z) {
861 info.mask = PIPE_MASK_RGBA; /* depth+stencil */
863 info.mask = PIPE_MASK_B; /* stencil only */
870 if (fb->zsbuf->texture == info.src.resource ||
871 fb->zsbuf->texture == info.dst.resource) {
877 (info.render_condition_enable ? 0 : R300_IGNORE_RENDER_COND));
878 util_blitter_blit(r300->blitter, &info);