aux/trace: fix winsys handle dumping
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Thu, 3 Aug 2023 18:00:02 +0000 (14:00 -0400)
committerMarge Bot <emma+marge@anholt.net>
Tue, 8 Aug 2023 23:54:29 +0000 (23:54 +0000)
cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24493>

src/gallium/auxiliary/driver_trace/tr_dump_state.c
src/gallium/auxiliary/driver_trace/tr_dump_state.h
src/gallium/auxiliary/driver_trace/tr_screen.c

index 8561f71..fe48ab8 100644 (file)
@@ -30,7 +30,7 @@
 #include "util/u_memory.h"
 #include "util/format/u_format.h"
 #include "tgsi/tgsi_dump.h"
-
+#include "frontend/winsys_handle.h"
 #include "tr_dump.h"
 #include "tr_dump_defines.h"
 #include "tr_dump_state.h"
@@ -1097,3 +1097,31 @@ void trace_dump_grid_info(const struct pipe_grid_info *state)
    trace_dump_struct_end();
 }
 
+void trace_dump_winsys_handle(const struct winsys_handle *whandle)
+{
+   if (!trace_dumping_enabled_locked())
+      return;
+
+   if (!whandle) {
+      trace_dump_null();
+      return;
+   }
+
+   trace_dump_struct_begin("winsys_handle");
+
+   trace_dump_member(uint, whandle, type);
+   trace_dump_member(uint, whandle, layer);
+   trace_dump_member(uint, whandle, plane);
+#ifdef _WIN32
+   trace_dump_member(ptr, whandle, handle);
+#else
+   trace_dump_member(uint, whandle, handle);
+#endif
+   trace_dump_member(uint, whandle, stride);
+   trace_dump_member(uint, whandle, offset);
+   trace_dump_member(format, whandle, format);
+   trace_dump_member(uint, whandle, modifier);
+   trace_dump_member(uint, whandle, size);
+
+   trace_dump_struct_end();
+}
index cb0fc5a..44b8b9f 100644 (file)
@@ -31,6 +31,7 @@
 #include "pipe/p_state.h"
 #include "pipe/p_shader_tokens.h"
 
+struct winsys_handle;
 
 void trace_dump_resource_template(const struct pipe_resource *templat);
 
@@ -101,4 +102,6 @@ void trace_dump_grid_info(const struct pipe_grid_info *state);
 void trace_dump_image_view(const struct pipe_image_view *view);
 
 void trace_dump_memory_info(const struct pipe_memory_info *state);
+
+void trace_dump_winsys_handle(const struct winsys_handle *whandle);
 #endif /* TR_STATE_H */
index 9a5c4e0..24e530c 100644 (file)
@@ -783,7 +783,7 @@ trace_screen_resource_from_handle(struct pipe_screen *_screen,
 
    trace_dump_arg(ptr, screen);
    trace_dump_arg(resource_template, templ);
-   trace_dump_arg(ptr, handle);
+   trace_dump_arg(winsys_handle, handle);
    trace_dump_arg(uint, usage);
 
    result = screen->resource_from_handle(screen, templ, handle, usage);
@@ -823,11 +823,11 @@ trace_screen_resource_get_handle(struct pipe_screen *_screen,
 
    trace_dump_arg(ptr, screen);
    trace_dump_arg(ptr, resource);
-   trace_dump_arg(ptr, handle);
    trace_dump_arg(uint, usage);
 
    result = screen->resource_get_handle(screen, pipe, resource, handle, usage);
 
+   trace_dump_arg(winsys_handle, handle);
    trace_dump_ret(bool, result);
 
    trace_dump_call_end();