Yonggang Luo
0f5688eb2c
intel: Remove unused ALIGN macro
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25997 >
2023-12-07 02:30:53 +00:00
Eric Engestrom
1942073112
intel/perf: fix regex escaping
...
`\$` is interpreted before being passed to `re.search()`, but luckily
for us the escape is also invalid and because of that, python 3.12+
warns us about it.
Use a raw string instead, so that the `\` is passed untouched to
`re.search()`.
Fixes: aa04b47c6e ("intel/perf: add support for GtSlice/GtSliceXDualsubsliceY variables")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26355 >
2023-11-27 11:58:03 +00:00
Lionel Landwerlin
f9bab3566b
intel/perf: fix querying of configurations
...
Using the unsized data field is incorrect. The data is located behind
the entire drm_i915_query_perf_config structure.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Reviewed-by: Rohan Garg <rohan.garg@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26285 >
2023-11-20 16:00:05 +00:00
Jordan Justen
abf8b47e02
intel/dev: Rename mtl-p to mtl-h
...
Ref: bspec 55414
Suggested-by: José Roberto de Souza <jose.souza@intel.com >
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25857 >
2023-11-07 06:37:00 +00:00
Jordan Justen
e04e491cc7
intel/dev: Rename mtl-m to mtl-u
...
Ref: bspec 55414
Suggested-by: José Roberto de Souza <jose.souza@intel.com >
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25857 >
2023-11-07 06:37:00 +00:00
José Roberto de Souza
4198a301b3
intel: Move i915_drm.h specific code from common/intel_gem.h to common/i915/intel_gem.h
...
This allow us to remove one more i915_drm.h include from code shared
by both backends.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23905 >
2023-07-28 15:36:52 +00:00
Rohan Garg
36d4e83299
intel/perf: add perf query support for Intel Raptorlake
...
Fixes: 4e0eca7dc3 ("intel/dev: Add device info for RPL")
Signed-off-by: Rohan Garg <rohan.garg@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24180 >
2023-07-17 13:56:02 +00:00
Michel Zou
badb85edb8
util: reinstate ENUM_PACKED
...
gets rid of warning: 'gcc_struct' attribute ignored [-Wattributes] introduced by !23338
Fixes: 86532fa21d ("util: Use the gcc_struct attribute for packed structures in mingw")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23478 >
2023-06-21 21:51:59 +00:00
Lionel Landwerlin
a88aedbfa5
intel/perf: fix OA format selection on MTL
...
Anything Gfx12.5+ has a different format.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 90c86fe63e ("intel: add MTL performance metrics")
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22257 >
2023-04-03 23:34:17 +00:00
Felix DeGrood
341f1011a6
intel/perf: Hide extended metrics by default
...
XE architecture enables many more metrics, perhaps too many for
the average user. Reduce reported metrics to smaller subset,
known as non-extended metrics, by default. Can re-enable extended
metrics with env var INTEL_EXTENDED_METRICS=1
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21841 >
2023-03-11 05:05:06 +00:00
José Roberto de Souza
757e2dd692
intel/perf: Disable it for Xe KMD
...
Xe still don't have support for performance metrics.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21773 >
2023-03-10 19:41:14 +00:00
Dylan Baker
a0fa31bcdd
intel/dev: create a helper dependency for libintel_dev
...
This ensures that users of libintel_dev.a won't be compiled until
include files are generated, and that they are recompiled when the
header changes.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Mark Janes <markjanes@swizzler.org >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20825 >
2023-03-02 00:01:27 +00:00
Yonggang Luo
669a68489d
meson: Use sse2_arg and sse2_args to replace usage of c and c_sse2_args
...
And now c_sse2_arg and c_sse2_args are remvoed
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21375 >
2023-02-27 13:50:11 +00:00
Lionel Landwerlin
14266d3c2d
intel/perf: also add the oa timestamp shift on MTL
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 90c86fe63e ("intel: add MTL performance metrics")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21378 >
2023-02-17 12:10:05 +00:00
Lionel Landwerlin
90c86fe63e
intel: add MTL performance metrics
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20228 >
2022-12-09 09:13:02 +00:00
Philippe Lecluse
bd2dd03937
intel: Disable SSE2 instruction set if building for non x86 architectures
...
Signed-off-by: Philippe Lecluse <philippe.lecluse@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19812 >
2022-11-23 16:57:23 +00:00
Vinson Lee
86f353ed23
intel/perf: Fix memory leak.
...
Fix defect with Coverity Scan.
Resource leak (RESOURCE_LEAK)
leaked_storage: Variable pass_array going out of scope leaks the storage it points to.
Fixes: d4cbb66506 ("intel/perf: support more than 64 queries")
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19888 >
2022-11-22 22:17:02 -08:00
Mark Janes
f0115ebc25
intel/perf: fix printf formatting of size_t for 32bit builds
...
Fixes: bdacd6df5a ("intel/perf: add a non installable tool to print metrics")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7736
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19856 >
2022-11-18 23:29:16 +00:00
Lionel Landwerlin
ac51c0c93c
intel/perf: add ACM/DG2 performance metrics
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:07 +00:00
Lionel Landwerlin
fdf602a545
intel/perf: use the new OA format for Gfx12.5+
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
61fef1ed72
intel/perf: fix B/C counters accumulation in non query mode
...
When we're not using queries, all the counters from the
MI_REPORT_PERF_COUNT are available. This is the case when using
perfetto with the global pps datasource that capture global counter
values.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 8750f43a90 ("intel/perf: add performance query layout using MI_SRM")
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
56bd81ee21
anv/perf: fixup counter/query mapping
...
The intel_perf_counter_pass::pass field is actually useless and
invalid.
Once you have mapped all the counters to all the metrics, the order of
the metrics capture is dictated by intel_perf_get_n_passes().
When reading values that is the order we should follow.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 2001a80d4a ("anv: Implement VK_KHR_performance_query")
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
7fbfa694a8
intel/perf: simplify pass computation loop
...
We don't need to go through all the metric sets as we're already built
a bitset matching per counter to figure out in which metric set a
particular counter is.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
4d19685a99
intel/perf: don't ralloc on perf context a temporary hash table
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
e754bf6be4
intel/perf: allocate cleared counter infos
...
This array of structure needs to be initialized to 0 as it contains a
bitset we don't explicitly clear.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 3144bc1d33 ("intel/perf: move query_mask and location out of gen_perf_query_counter")
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
bdacd6df5a
intel/perf: add a non installable tool to print metrics
...
Useful to look at the layout of the queries.
v2: Rework based on Marcin's comment
v3: Rebase
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Mark Janes
e3a842d627
intel/perf: fix overflow in index types
...
With DG2, the number of perf groups and metrics climbs into the
thousands. 16bit fields are not sufficient for storing metrics
indices, and the build throws warnings when compiling the generated
intel_perf_metrics.c
Use a 32bit integer for these values.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
7770346902
intel/perf: support new variable names
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
c1aa1059c6
intel/perf: support new operators for upcoming metrics
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
d4cbb66506
intel/perf: support more than 64 queries
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
Lionel Landwerlin
1dd4cc0da5
intel/perf: fix variable type assumption error
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18893 >
2022-11-17 12:57:06 +00:00
José Roberto de Souza
dfd20f002f
intel: Add and use intel_gem_get_param()
...
Again sharing the same function across all Intel drivers.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19425 >
2022-11-07 17:22:14 +00:00
José Roberto de Souza
bb9f66800c
intel/perf: Use intel_device_info functions to compute subslice and eu totals
...
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19359 >
2022-10-28 20:12:07 +00:00
Marcin Ślusarz
f4386b81e6
intel: fix typos found by codespell
...
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17191 >
2022-06-27 10:20:55 +00:00
Lionel Landwerlin
9d0db8d4c4
intel/perf: deal with OA reports timestamp values on DG2
...
OA reports on XeHP have their timestamp shifted to the left by 1. To
get that back in the same time domain as the REG_READ you need to
shift it back to the right and you're loosing the top bit.
v2: use ull for 64bit constant (Ian)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
773f41e3e4
intel/perf: disable sseu setting on Gfx12.5+
...
This is rejected by i915.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
d2834dd626
intel/perf: add new layout for Gfx12.5 products
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
66045acdf9
intel/perf: add max vfuncs
...
New counters will use those from inside their read function to
generate percentage numbers.
v2: Forgot to update Iris (Lionel)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com > (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
c740ca6000
intel/perf: add support new variable counting the number of EUs in slice0-3
...
v2: MIN2(4, max_slices) (Marcin)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
6f63bc38e7
intel/perf: add OA A counter type
...
On Gfx12.5 products, we'll need to capture a couple of A counters that
are not captured in MI_RPC reports. Those are actually global,
previously all A counters were per context.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
376e420abb
intel/perf: stop overriding oa_format
...
This already set in the intel_perf_setup.h file at metric set
creation.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
aa04b47c6e
intel/perf: add support for GtSlice/GtSliceXDualsubsliceY variables
...
For those, we'll fish the information out of the devinfo.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
d134a62345
intel/perf: add support for dualsubslice count variable
...
This is the same as the subslice count.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
efc2782f97
intel/perf: store a copy of devinfo
...
In the future we'll pull more information off devinfo.
v2: Constify pointers (Ian)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Lionel Landwerlin
0df4b96062
intel/perf: add support for new opcodes in code generation
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16144 >
2022-05-17 19:55:10 +00:00
Francisco Jerez
e858da39e5
intel/perf: Fix OA report accumulation on Gfx12+.
...
The intel_perf_query path used for performance queries on GL was
passing a bogus "end" pointer to intel_perf_query_result_accumulate(),
causing it to accumulate garbage values. This was causing the values
of many performance counters to be corrupted.
The "end" pointer was incorrect because the current code was assuming
that different OA reports were located TOTAL_QUERY_DATA_SIZE bytes
apart, which is a hard-coded preprocessor define. However recent
(Gfx12+) hardware generations use a variable query size determined by
the query layout. Use the size derived from it instead, and remove
the stale define.
Fixes: 3c51325025 ("intel/perf: switch query code to use query layout")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15783 >
2022-04-12 00:11:47 +00:00
Matt Turner
8860ff3310
intel/perf: Destination array calculation into function
...
Cuts 119 KiB from iris_dri.so and libvulkan_intel.so.
text data bss dec hex filename
917511 0 0 917511 e0007 meson-generated_.._intel_perf_metrics.c.o (before)
796986 0 0 796986 c293a meson-generated_.._intel_perf_metrics.c.o (after)
text data bss dec hex filename
14130948 365708 210004 14706660 e067e4 iris_dri.so (before)
14009332 365708 210004 14585044 de8cd4 iris_dri.so (after)
text data bss dec hex filename
8124225 214264 22820 8361309 7f955d libvulkan_intel.so (before)
8002609 214264 22820 8239693 7dba4d libvulkan_intel.so (after)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15237 >
2022-03-07 21:09:54 +00:00
Matt Turner
d80d3c6760
intel/perf: Fix mistake in description string
...
Along with fixing the grammar, this allows it to be deduplicated since
the properly worded description exists in later generations' XMLs.
Cuts 96 B from iris_dri.so and libvulkan_intel.so.
text data bss dec hex filename
917613 0 0 917613 e006d meson-generated_.._intel_perf_metrics.c.o (before)
917511 0 0 917511 e0007 meson-generated_.._intel_perf_metrics.c.o (after)
text data bss dec hex filename
14131044 365708 210004 14706756 e06844 iris_dri.so (before)
14130948 365708 210004 14706660 e067e4 iris_dri.so (after)
text data bss dec hex filename
8124321 214264 22820 8361405 7f95bd libvulkan_intel.so (before)
8124225 214264 22820 8361309 7f955d libvulkan_intel.so (after)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15237 >
2022-03-07 21:09:54 +00:00
Matt Turner
7024b8e0eb
intel/perf: Mark intel_perf_counter_* enums as PACKED
...
Reduces their sizes from 4 bytes to 1. Cuts 6 KiB from iris_dri.so and
libvulkan_intel.so.
text data bss dec hex filename
924401 0 0 924401 e1af1 meson-generated_.._intel_perf_metrics.c.o (before)
917613 0 0 917613 e006d meson-generated_.._intel_perf_metrics.c.o (after)
text data bss dec hex filename
14137732 365708 210004 14713444 e08264 iris_dri.so (before)
14131044 365708 210004 14706756 e06844 iris_dri.so (after)
text data bss dec hex filename
8131009 214264 22820 8368093 7fafdd libvulkan_intel.so (before)
8124321 214264 22820 8361405 7f95bd libvulkan_intel.so (after)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15237 >
2022-03-07 21:09:54 +00:00
Matt Turner
6c0246dcf4
intel/perf: Store indices to strings rather than pointers
...
The compiler does a good job of deduplicating strings already, but we
can eliminate the pointers to each string by combining the strings into
a single char array and storing only an index into that array.
The longest of the char arrays is the descriptions array, which is a
little over 45 KiB, so still under MSVC's 64 KiB string literal limit
[0]. Because the string length is under 64 KiB we can use uint16_t as
the index type, which roughly doubles our savings as compared to an int.
This cuts 77 KiB from iris_dri.so (0.5%) and libvulkan_intel.so (0.9%).
text data bss dec hex filename
926811 25920 0 952731 e899b meson-generated_.._intel_perf_metrics.c.o (before)
924401 0 0 924401 e1af1 meson-generated_.._intel_perf_metrics.c.o (after)
text data bss dec hex filename
14190852 391628 210004 14792484 e1b724 iris_dri.so (before)
14137732 365708 210004 14713444 e08264 iris_dri.so (after)
text data bss dec hex filename
8184097 240184 22820 8447101 80e47d libvulkan_intel.so (before)
8131009 214264 22820 8368093 7fafdd libvulkan_intel.so (after)
relinfo:
iris_dri.so (before): 17765 relocations, 17545 relative (98%), 452 PLT entries, 1 for local syms (0%), 0 users
iris_dri.so (after) : 15605 relocations, 15385 relative (98%), 452 PLT entries, 1 for local syms (0%), 0 users
libvulkan_intel.so (before): 10720 relocations, 6989 relative (65%), 355 PLT entries, 1 for local syms (0%), 0 users
libvulkan_intel.so (after) : 8560 relocations, 4829 relative (56%), 355 PLT entries, 1 for local syms (0%), 0 users
[0] https://docs.microsoft.com/en-us/cpp/cpp/string-and-character-literals-cpp?view=msvc-170&viewFallbackFrom=vs-2019
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15237 >
2022-03-07 21:09:54 +00:00