From 938fe1ca8e81df1862811dff3e75746eafe650fe Mon Sep 17 00:00:00 2001 From: Larry Meadows Date: Tue, 9 Dec 2025 09:40:48 -0800 Subject: [PATCH] Add missing formatters for ompt_mutex_t and ompt_target_t. (#1343) This are used by rocprofiler-system when it generates perfetto output. --- .../rocprofiler-sdk/ompt/details/format.hpp | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/ompt/details/format.hpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/ompt/details/format.hpp index dbc8033887..54dcb7ea46 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/ompt/details/format.hpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/ompt/details/format.hpp @@ -211,6 +211,26 @@ struct formatter : rocprofiler::ompt::details::base_formatter } }; +template <> +struct formatter : rocprofiler::ompt::details::base_formatter +{ + template + auto format(const ompt_mutex_t& v, Ctx& ctx) const + { + switch(v) + { + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, mutex_lock); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, mutex_test_lock); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, mutex_nest_lock); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, mutex_test_nest_lock); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, mutex_critical); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, mutex_atomic); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, mutex_ordered); + } + return fmt::format_to(ctx.out(), "Unknown"); + } +}; + template <> struct formatter : rocprofiler::ompt::details::base_formatter { @@ -232,6 +252,27 @@ struct formatter : rocprofiler::ompt::details::base_formatte } }; +template <> +struct formatter : rocprofiler::ompt::details::base_formatter +{ + template + auto format(const ompt_target_t& v, Ctx& ctx) const + { + switch(v) + { + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, target); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, target_enter_data); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, target_exit_data); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, target_update); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, target_nowait); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, target_enter_data_nowait); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, target_exit_data_nowait); + ROCP_SDK_OMPT_FORMAT_CASE_STMT(ompt, target_update_nowait); + } + return fmt::format_to(ctx.out(), "Unknown"); + } +}; + template <> struct formatter : rocprofiler::ompt::details::base_formatter {