aux/trace: more screen methods
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 7 Feb 2022 19:39:25 +0000 (14:39 -0500)
committerMarge Bot <emma+marge@anholt.net>
Wed, 9 Mar 2022 03:54:37 +0000 (03:54 +0000)
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14854>

src/gallium/auxiliary/driver_trace/tr_screen.c

index db82f01..6427ff2 100644 (file)
@@ -529,6 +529,30 @@ trace_screen_allocate_memory(struct pipe_screen *_screen,
    return result;
 }
 
+static struct pipe_memory_allocation *
+trace_screen_allocate_memory_fd(struct pipe_screen *_screen,
+                                uint64_t size,
+                                int *fd)
+{
+   struct trace_screen *tr_scr = trace_screen(_screen);
+   struct pipe_screen *screen = tr_scr->screen;
+   struct pipe_memory_allocation *result;
+
+   trace_dump_call_begin("pipe_screen", "allocate_memory_fd");
+
+   trace_dump_arg(ptr, screen);
+   trace_dump_arg(uint, size);
+   trace_dump_arg(ptr, fd);
+
+   result = screen->allocate_memory_fd(screen, size, fd);
+
+   trace_dump_ret(ptr, result);
+
+   trace_dump_call_end();
+
+   return result;
+}
+
 static void
 trace_screen_free_memory(struct pipe_screen *_screen,
                          struct pipe_memory_allocation *pmem)
@@ -547,6 +571,24 @@ trace_screen_free_memory(struct pipe_screen *_screen,
    trace_dump_call_end();
 }
 
+static void
+trace_screen_free_memory_fd(struct pipe_screen *_screen,
+                         struct pipe_memory_allocation *pmem)
+{
+   struct trace_screen *tr_scr = trace_screen(_screen);
+   struct pipe_screen *screen = tr_scr->screen;
+
+   trace_dump_call_begin("pipe_screen", "free_memory_fd");
+
+   trace_dump_arg(ptr, screen);
+   trace_dump_arg(ptr, pmem);
+
+   screen->free_memory_fd(screen, pmem);
+
+
+   trace_dump_call_end();
+}
+
 static bool
 trace_screen_resource_bind_backing(struct pipe_screen *_screen,
                                    struct pipe_resource *resource,
@@ -1244,7 +1286,9 @@ trace_screen_create(struct pipe_screen *screen)
    tr_scr->base.resource_bind_backing = trace_screen_resource_bind_backing;
    tr_scr->base.resource_from_handle = trace_screen_resource_from_handle;
    tr_scr->base.allocate_memory = trace_screen_allocate_memory;
+   SCR_INIT(allocate_memory_fd);
    tr_scr->base.free_memory = trace_screen_free_memory;
+   SCR_INIT(free_memory_fd);
    tr_scr->base.map_memory = trace_screen_map_memory;
    tr_scr->base.unmap_memory = trace_screen_unmap_memory;
    SCR_INIT(query_memory_info);