aux/trace: add screen video methods
authorJulia Tatz <tatz.j@northeastern.edu>
Fri, 4 Aug 2023 01:28:09 +0000 (21:28 -0400)
committerMarge Bot <emma+marge@anholt.net>
Wed, 16 Aug 2023 00:11:30 +0000 (00:11 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24482>

src/gallium/auxiliary/driver_trace/enums2names.py
src/gallium/auxiliary/driver_trace/tr_screen.c
src/gallium/auxiliary/meson.build

index 3d547e0..d64e919 100755 (executable)
@@ -48,6 +48,9 @@ lst_enum_include = [
     "pipe_cap",
     "pipe_capf",
     "pipe_compute_cap",
+    "pipe_video_cap",
+    "pipe_video_profile",
+    "pipe_video_entrypoint",
     "pipe_resource_param",
     "pipe_fd_type",
     "pipe_blendfactor",
@@ -211,6 +214,7 @@ def pkk_output_header(fh):
 
 
         #include "pipe/p_defines.h"
+        #include "pipe/p_video_enums.h"
 
 
         #ifdef __cplusplus
index fc1d8b4..dc72112 100644 (file)
@@ -247,6 +247,31 @@ trace_screen_get_compute_param(struct pipe_screen *_screen,
    return result;
 }
 
+static int
+trace_screen_get_video_param(struct pipe_screen *_screen,
+                             enum pipe_video_profile profile,
+                             enum pipe_video_entrypoint entrypoint,
+                             enum pipe_video_cap param)
+{
+   struct trace_screen *tr_scr = trace_screen(_screen);
+   struct pipe_screen *screen = tr_scr->screen;
+   int result;
+
+   trace_dump_call_begin("pipe_screen", "get_video_param");
+
+   trace_dump_arg(ptr, screen);
+   trace_dump_arg_enum(pipe_video_profile, profile);
+   trace_dump_arg_enum(pipe_video_entrypoint, entrypoint);
+   trace_dump_arg_enum(pipe_video_cap, param);
+
+   result = screen->get_video_param(screen, profile, entrypoint, param);
+
+   trace_dump_ret(int, result);
+
+   trace_dump_call_end();
+
+   return result;
+}
 
 static bool
 trace_screen_is_format_supported(struct pipe_screen *_screen,
@@ -279,6 +304,32 @@ trace_screen_is_format_supported(struct pipe_screen *_screen,
    return result;
 }
 
+static bool
+trace_screen_is_video_format_supported(struct pipe_screen *_screen,
+                                       enum pipe_format format,
+                                       enum pipe_video_profile profile,
+                                       enum pipe_video_entrypoint entrypoint)
+{
+   struct trace_screen *tr_scr = trace_screen(_screen);
+   struct pipe_screen *screen = tr_scr->screen;
+   bool result;
+
+   trace_dump_call_begin("pipe_screen", "is_video_format_supported");
+
+   trace_dump_arg(ptr, screen);
+   trace_dump_arg(format, format);
+   trace_dump_arg_enum(pipe_video_profile, profile);
+   trace_dump_arg_enum(pipe_video_entrypoint, entrypoint);
+
+   result = screen->is_video_format_supported(screen, format, profile, entrypoint);
+
+   trace_dump_ret(bool, result);
+
+   trace_dump_call_end();
+
+   return result;
+}
+
 static void
 trace_screen_driver_thread_add_job(struct pipe_screen *_screen,
                                    void *data, struct util_queue_fence *fence,
@@ -1429,7 +1480,9 @@ trace_screen_create(struct pipe_screen *screen)
    tr_scr->base.get_shader_param = trace_screen_get_shader_param;
    tr_scr->base.get_paramf = trace_screen_get_paramf;
    tr_scr->base.get_compute_param = trace_screen_get_compute_param;
+   SCR_INIT(get_video_param);
    tr_scr->base.is_format_supported = trace_screen_is_format_supported;
+   SCR_INIT(is_video_format_supported);
    assert(screen->context_create);
    tr_scr->base.context_create = trace_screen_context_create;
    tr_scr->base.resource_create = trace_screen_resource_create;
index 36012c8..0388542 100644 (file)
@@ -467,7 +467,7 @@ endif
 prog_enums2names = files('driver_trace/enums2names.py')
 files_libgallium += custom_target(
   'tr_util.[ch]',
-  input: ['../include/pipe/p_defines.h', '../../util/blend.h'],
+  input: ['../include/pipe/p_defines.h', '../include/pipe/p_video_enums.h', '../../util/blend.h'],
   output: ['tr_util.c', 'tr_util.h'],
   command: [prog_python, prog_enums2names, '@INPUT@', '-C', '@OUTPUT0@', '-H', '@OUTPUT1@', '-I', 'tr_util.h'],
   depend_files: prog_enums2names,