mesa/src
Boris Brezillon bf05842a8d pan/cs: Add an event-based tracing mechanism
Interpreting the command buffer only really works if everything is
static, but panvk started to make extensive use of loops, and
conditionals which depends on memory values that get updated by the
command stream itself. This makes it impossible to walk back to the
original state in order to replay the CS actions.

Move away from this approach in favor of an event-based tracing
mechanism recording particular CS commands and their context at
execution time. Of course, that means the auxiliary descriptors
shouldn't be recycled until the traces are decoded, but that's more
tractable. We just need to turn the descriptor ring buffers into
linear buffers with a guard page, and crash on OOB, with a message
suggesting the user to tweak the maximum trace buffer sizes.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32284>
2024-11-28 20:21:52 +00:00
..
amd radv: Use default 0 for undefined builtin PS inputs. 2024-11-28 18:14:57 +00:00
android_stub vulkan/android: Add helper to probe AHB support 2024-05-14 14:53:44 +00:00
asahi asahi,vtn: precompile kernels 2024-11-28 17:34:12 +00:00
broadcom v3dv: use Mesa log infrastructure instead of using stderr 2024-11-26 12:09:29 +00:00
c11 build: pass licensing information in SPDX form 2024-06-29 12:42:49 -07:00
compiler asahi,vtn: precompile kernels 2024-11-28 17:34:12 +00:00
drm-shim drm-shim: stub synobj_timeline_wait and query ioctl 2024-07-16 11:17:59 +02:00
egl meson: drop unused variables 2024-11-26 20:45:41 +00:00
etnaviv etnaviv: drm: use list_first_entry 2024-11-20 13:08:28 +00:00
freedreno vdrm+tu+fd: Make cross-device optional 2024-11-28 19:55:11 +00:00
gallium pan/decode: Rename pandecode_cs() into pandecode_interpret_cs() 2024-11-28 20:21:52 +00:00
gbm Revert "gbm: mark surface buffers as explicit flushed" 2024-11-27 22:48:04 +00:00
getopt build: pass licensing information in SPDX form 2024-06-29 12:42:49 -07:00
gfxstream meson: drop unused variables 2024-11-26 20:45:41 +00:00
glx glx: return BadMatch for invalid reset notification strategy 2024-11-27 19:00:20 +00:00
gtest build: pass licensing information in SPDX form 2024-06-29 12:42:49 -07:00
imagination pvr: Make Vulkan driver depend only on nir headers, not library 2024-10-23 16:47:34 +00:00
imgui
intel glx: return BadMatch for invalid reset notification strategy 2024-11-27 19:00:20 +00:00
loader loader: Fix typo in __DRI_IMAGE_FORMAT_XBGR16161616 definition 2024-10-25 14:18:24 +00:00
mapi meson: remove selinux option 2024-10-21 01:14:35 +00:00
mesa glsl: drop unused symbol table from gl_shader 2024-11-25 23:53:37 +00:00
microsoft nir_lower_mem_access_bit_sizes: pass access to callback 2024-11-13 12:59:26 +00:00
nouveau nvk/android: Add support for ANDROID_native_buffer 2024-11-26 21:45:16 +00:00
panfrost pan/cs: Add an event-based tracing mechanism 2024-11-28 20:21:52 +00:00
tool perfetto: Add Panfrost data sources to system.cfg 2024-08-22 18:33:45 +00:00
util util/ra: Remove unimplemented function declaration 2024-11-28 19:19:26 +00:00
virtio vdrm+tu+fd: Make cross-device optional 2024-11-28 19:55:11 +00:00
vulkan vulkan: add MESA_VK_TRACE_PER_SUBMIT 2024-11-28 07:03:20 +00:00
x11 meson: require dri3 modifiers 2024-09-06 17:34:17 +00:00
.clang-format nir: add helpers for precompiled shaders 2024-11-28 17:34:12 +00:00
meson.build meson: simplify logic a bit 2024-11-26 20:45:41 +00:00