[Mesa-dev] [PATCH v5 04/12] gallium: use pipe_screen_unreference to destroy screen in debug wrappers

Marek Olšák maraeo at gmail.com
Wed Aug 9 20:14:30 UTC 2017


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Tue, Aug 8, 2017 at 12:58 AM, Rob Herring <robh at kernel.org> wrote:
> Use pipe_screen_unreference as it will call pipe_screen->destroy() when
> the pipe_screen is no longer referenced.
>
> Signed-off-by: Rob Herring <robh at kernel.org>
> ---
>  src/gallium/drivers/ddebug/dd_screen.c | 3 ++-
>  src/gallium/drivers/noop/noop_pipe.c   | 3 ++-
>  src/gallium/drivers/rbug/rbug_screen.c | 3 ++-
>  src/gallium/drivers/trace/tr_screen.c  | 3 ++-
>  4 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/src/gallium/drivers/ddebug/dd_screen.c b/src/gallium/drivers/ddebug/dd_screen.c
> index 14e6f6b011f7..806846573234 100644
> --- a/src/gallium/drivers/ddebug/dd_screen.c
> +++ b/src/gallium/drivers/ddebug/dd_screen.c
> @@ -28,6 +28,7 @@
>  #include "dd_pipe.h"
>  #include "dd_public.h"
>  #include "util/u_memory.h"
> +#include "util/u_screen.h"
>  #include <stdio.h>
>
>
> @@ -314,7 +315,7 @@ dd_screen_destroy(struct pipe_screen *_screen)
>     struct dd_screen *dscreen = dd_screen(_screen);
>     struct pipe_screen *screen = dscreen->screen;
>
> -   screen->destroy(screen);
> +   pipe_screen_unreference(screen);
>     FREE(dscreen);
>  }
>
> diff --git a/src/gallium/drivers/noop/noop_pipe.c b/src/gallium/drivers/noop/noop_pipe.c
> index d1e795dab163..28c095058a36 100644
> --- a/src/gallium/drivers/noop/noop_pipe.c
> +++ b/src/gallium/drivers/noop/noop_pipe.c
> @@ -29,6 +29,7 @@
>  #include "util/u_memory.h"
>  #include "util/u_inlines.h"
>  #include "util/u_format.h"
> +#include "util/u_screen.h"
>  #include "util/u_upload_mgr.h"
>  #include "noop_public.h"
>
> @@ -431,7 +432,7 @@ static void noop_destroy_screen(struct pipe_screen *screen)
>     struct noop_pipe_screen *noop_screen = (struct noop_pipe_screen*)screen;
>     struct pipe_screen *oscreen = noop_screen->oscreen;
>
> -   oscreen->destroy(oscreen);
> +   pipe_screen_unreference(oscreen);
>     FREE(screen);
>  }
>
> diff --git a/src/gallium/drivers/rbug/rbug_screen.c b/src/gallium/drivers/rbug/rbug_screen.c
> index b12f029b3ea1..dc36425cc45f 100644
> --- a/src/gallium/drivers/rbug/rbug_screen.c
> +++ b/src/gallium/drivers/rbug/rbug_screen.c
> @@ -30,6 +30,7 @@
>  #include "pipe/p_state.h"
>  #include "util/u_memory.h"
>  #include "util/u_debug.h"
> +#include "util/u_screen.h"
>  #include "util/simple_list.h"
>
>  #include "rbug_public.h"
> @@ -45,7 +46,7 @@ rbug_screen_destroy(struct pipe_screen *_screen)
>     struct rbug_screen *rb_screen = rbug_screen(_screen);
>     struct pipe_screen *screen = rb_screen->screen;
>
> -   screen->destroy(screen);
> +   pipe_screen_unreference(screen);
>
>     FREE(rb_screen);
>  }
> diff --git a/src/gallium/drivers/trace/tr_screen.c b/src/gallium/drivers/trace/tr_screen.c
> index e56434c5bda6..697854185d54 100644
> --- a/src/gallium/drivers/trace/tr_screen.c
> +++ b/src/gallium/drivers/trace/tr_screen.c
> @@ -27,6 +27,7 @@
>
>  #include "util/u_format.h"
>  #include "util/u_memory.h"
> +#include "util/u_screen.h"
>  #include "util/simple_list.h"
>
>  #include "tr_dump.h"
> @@ -488,7 +489,7 @@ trace_screen_destroy(struct pipe_screen *_screen)
>     trace_dump_arg(ptr, screen);
>     trace_dump_call_end();
>
> -   screen->destroy(screen);
> +   pipe_screen_unreference(screen);
>
>     FREE(tr_scr);
>  }
> --
> 2.11.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list