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

Submitted by Rob Herring on Aug. 7, 2017, 10:58 p.m.

Details

Message ID 20170807225819.13831-5-robh@kernel.org
State New
Headers show
Series "Common pipe screen ref counting" ( rev: 5 ) in Mesa

Not browsing as part of any series.

Commit Message

Rob Herring Aug. 7, 2017, 10:58 p.m.
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@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(-)

Patch hide | download patch | download mbox

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);
 }

Comments

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

Marek

On Tue, Aug 8, 2017 at 12:58 AM, Rob Herring <robh@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@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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev