[Mesa-dev] [Nouveau] [PATCH mesa 2/4] nv30: Implement color resolve for msaa
Ilia Mirkin
imirkin at alum.mit.edu
Thu Sep 3 10:29:13 PDT 2015
On Thu, Sep 3, 2015 at 7:25 AM, Hans de Goede <hdegoede at redhat.com> wrote:
> Note this is not ideal. Since the sifm can only do source sizes upto
> 1024x1024 we end up using the blitter on nv4x, which is not that fast.
Moral of the story: don't do use nv3x/nv4x :)
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
>
> And on nv3x we end up using the cpu which is really slow.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> src/gallium/drivers/nouveau/nv30/nv30_miptree.c | 19 ++++++++-----------
> src/gallium/drivers/nouveau/nv30/nv30_resource.h | 3 ---
> 2 files changed, 8 insertions(+), 14 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_miptree.c b/src/gallium/drivers/nouveau/nv30/nv30_miptree.c
> index 2276347..76bb8b8 100644
> --- a/src/gallium/drivers/nouveau/nv30/nv30_miptree.c
> +++ b/src/gallium/drivers/nouveau/nv30/nv30_miptree.c
> @@ -145,21 +145,18 @@ nv30_resource_copy_region(struct pipe_context *pipe,
> nv30_transfer_rect(nv30, NEAREST, &src, &dst);
> }
>
> -void
> -nv30_resource_resolve(struct pipe_context *pipe,
> - const struct pipe_resolve_info *info)
> +static void
> +nv30_resource_resolve(struct nv30_context *nv30,
> + const struct pipe_blit_info *info)
> {
> -#if 0
> - struct nv30_context *nv30 = nv30_context(pipe);
> struct nv30_rect src, dst;
>
> - define_rect(info->src.res, 0, 0, info->src.x0, info->src.y0,
> - info->src.x1 - info->src.x0, info->src.y1 - info->src.y0, &src);
> - define_rect(info->dst.res, info->dst.level, 0, info->dst.x0, info->dst.y0,
> - info->dst.x1 - info->dst.x0, info->dst.y1 - info->dst.y0, &dst);
> + define_rect(info->src.resource, 0, info->src.box.z, info->src.box.x,
> + info->src.box.y, info->src.box.width, info->src.box.height, &src);
> + define_rect(info->dst.resource, 0, info->dst.box.z, info->dst.box.x,
> + info->dst.box.y, info->dst.box.width, info->dst.box.height, &dst);
>
> nv30_transfer_rect(nv30, BILINEAR, &src, &dst);
> -#endif
> }
>
> void
> @@ -173,7 +170,7 @@ nv30_blit(struct pipe_context *pipe,
> info.dst.resource->nr_samples <= 1 &&
> !util_format_is_depth_or_stencil(info.src.resource->format) &&
> !util_format_is_pure_integer(info.src.resource->format)) {
> - debug_printf("nv30: color resolve unimplemented\n");
> + nv30_resource_resolve(nv30, blit_info);
> return;
> }
>
> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_resource.h b/src/gallium/drivers/nouveau/nv30/nv30_resource.h
> index 8dac779..20d86b6 100644
> --- a/src/gallium/drivers/nouveau/nv30/nv30_resource.h
> +++ b/src/gallium/drivers/nouveau/nv30/nv30_resource.h
> @@ -66,9 +66,6 @@ nv30_resource_copy_region(struct pipe_context *pipe,
> const struct pipe_box *src_box);
>
> void
> -nv30_resource_resolve(struct pipe_context *, const struct pipe_resolve_info *);
> -
> -void
> nv30_blit(struct pipe_context *pipe,
> const struct pipe_blit_info *blit_info);
>
> --
> 2.4.3
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/nouveau
More information about the mesa-dev
mailing list