mesa/src/panfrost/lib
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
..
genxml pan/cs: Add an event-based tracing mechanism 2024-11-28 20:21:52 +00:00
kmod pan/kmod: Expose medium priority on panfrost 2024-11-12 08:46:22 +00:00
tests panfrost: Increase AFBC body alignment requirement on v6+ 2024-11-25 00:25:05 -05:00
.gitignore
meson.build panfrost: Move pan_blitter.{c,h} to the gallium driver 2024-10-03 09:53:35 +00:00
pan_afbc.c panfrost: Add support for AFBC(split) 2024-11-25 00:26:26 -05:00
pan_afrc.c panfrost: add translation between modifier and compression rates 2024-07-11 19:02:50 +00:00
pan_attributes.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
pan_blend.c panfrost: fix SAMPLE_ALPHA_TO_ONE 2024-09-26 02:25:28 +00:00
pan_blend.h panfrost: fix SAMPLE_ALPHA_TO_ONE 2024-09-26 02:25:28 +00:00
pan_clear.c panfrost: pass blendable formats to pan_pack_color 2023-11-06 14:30:28 +01:00
pan_desc.c panfrost: Add support for AFBC(split) 2024-11-25 00:26:26 -05:00
pan_desc.h panfrost: Select the effective tile size as part of pan_fb_info 2024-11-25 00:25:58 -05:00
pan_earlyzs.c panfrost: fix earlyzs settings for alpha_to_coverage 2024-09-30 18:33:41 +00:00
pan_earlyzs.h panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
pan_encoder.h panfrost: Make pan_encoder.h panfrost_device agnostic 2024-01-23 16:32:09 +00:00
pan_format.c panfrost: add panfrost support for NV15, NV16 and NV20 2024-11-25 13:04:19 +00:00
pan_format.h panfrost: store texfeat_bit in panfrost_format 2024-10-02 14:21:56 +00:00
pan_indirect_dispatch.c pan/jc: Drop unused pool argument passed to pan_jc_add_job() 2024-05-28 16:03:30 +00:00
pan_indirect_dispatch.h panfrost: Make pan_indirect_dispatch panfrost_device agnostic 2024-01-23 16:32:09 +00:00
pan_jc.h pan/jc: Drop unused pool argument passed to pan_jc_add_job() 2024-05-28 16:03:30 +00:00
pan_layout.c panfrost: add panfrost support for NV15, NV16 and NV20 2024-11-25 13:04:19 +00:00
pan_pool.h panfrost: Make pan_pool.h panfrost_{device,bo} agnostic 2024-01-23 16:32:09 +00:00
pan_props.c panfrost: add device querying for AFRC support 2024-07-11 19:02:50 +00:00
pan_props.h panfrost: Add a helper to expose the maximum effective tile size 2024-11-25 00:26:02 -05:00
pan_samples.c panfrost: Make pan_sample.c panfrost_device agnostic 2024-01-23 16:32:09 +00:00
pan_samples.h panfrost: Make pan_sample.c panfrost_device agnostic 2024-01-23 16:32:09 +00:00
pan_scratch.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
pan_shader.c pan/shader: Fix FS varyings.input_count initialization on v9+ 2024-08-20 13:20:51 +00:00
pan_shader.h panfrost: move pan_arch definition out of genxml to pan_props.h 2024-08-23 16:57:58 +00:00
pan_texture.c panfrost: add panfrost support for NV15, NV16 and NV20 2024-11-25 13:04:19 +00:00
pan_texture.h panfrost: Advertise support for AFBC(32x8,sparse,split) 2024-11-25 00:26:36 -05:00
pan_tiler.c panfrost: Remove uneeded pan_device.h inclusions 2024-01-23 16:32:09 +00:00
pan_util.c panfrost: improve swizzle inversion 2024-09-11 19:29:16 +00:00
pan_util.h panfrost: add debug flag to enable extra CS checks 2024-10-28 20:31:21 +00:00
wrap.h pan/cs: Add an event-based tracing mechanism 2024-11-28 20:21:52 +00:00