Age | Commit message (Collapse) | Author | Files | Lines |
|
Align with commit ("drm/xe/uapi: Remove MMIO ioctl")
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
|
Rudimentary vendor agnostic example of how lib_igt_drm_clients can be used
to display a sorted by card and usage list of processes using GPUs.
Borrows a bit of code from intel_gpu_top but for now omits the fancy
features like interactive functionality, card selection, client
aggregation, sort modes, JSON output and pretty engine names. Also no
support for global GPU or system metrics.
On the other hand it shows clients from all DRM cards which
intel_gpu_top does not do.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Rob Clark <robdclark@chromium.org>
Cc: Christian König <ckoenig.leichtzumerken@gmail.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
|
|
Extract some code into a new library to prepare for further work towards
making a vendor agnostic gputop tool.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
|
|
Since we are now using unversioned GuC/HuC, it's useful to be able to
dump the firmware blob and get that information from the CSS header.
Add a tool that decodes that information and dumps the raw header.
Example output:
$ tools/intel-gfx-fw-info /lib/firmware/i915/tgl_guc_70.bin
version: 70.5.1
date: 2022-09-09
raw dump:
00000000 06 00 00 00 a1 00 00 00 00 00 01 00 00 00 00 00 ................
00000010 86 80 00 00 09 09 22 20 71 17 01 00 40 00 00 00 ......" q...@...
00000020 40 00 00 00 01 00 00 00 09 21 45 00 73 79 73 5f @........!E.sys_
00000030 67 62 73 62 50 43 2d 31 2e 30 2e 33 31 35 30 00 gbsbPC-1.0.3150.
00000040 01 05 46 00 00 00 00 00 00 00 00 00 00 00 00 00 ..F.............
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000070 00 00 00 00 00 00 00 00 00 10 80 00 00 01 40 00 ..............@.
struct uc_css_header:
- module_type: 0x6
- header_size_dw: 0xa1
- header_version: 0x10000
- module_id: 0x0
- module_vendor: 0x8086
- date: 0x20220909
- size_dw: 0x11771
- key_size_dw: 0x40
- modulus_size_dw: 0x40
- exponent_size_dw: 0x1
- time: 0x452109
- username: b'sys_gbsb'
- buildnumber: b'PC-1.0.3150\x00'
- sw_version: 0x460501
- vf_version: 0x0
- reserved0: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
- rsvd: <rsvd private_data_size=0x801000, reserved1=0x801000>
- header_info: 0x400100
v2:
- Comments in the struct don't need to be removed: the defines do.
Just comment them out with a "//" which should bring people's
attention to it since it's not an approved way for comments
according to kernel coding style
- Better logging handling, without an explicit logger object
- Catch ImportError for the dissect.cstruct dependency (Gustavo)
Acked-by: Gustavo Sousa <gustavo.sousa@intel.com>
Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Link: https://lore.kernel.org/r/20230404170737.1856619-1-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Add xe_reg tool which allows to manipulate Xe registers.
Sample use:
./xe_reg read --ring rcs0 --all
./xe_reg read --ring rcs0 EXECLIST_STATUS
At this moment rings rcs0 and bcs0 are supported.
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>
|
|
Libdrm was removed from intel tools so lets remove libdrm configuration
and migrate tools to normal tools list.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
intel_pm_rpm tool is a debug tool. It can be use to setup
and prepare the gfx card to go to D3Cold.
It also provide the debug option to disable all display and
prepare device to enter to runtime suspend.
v2:
- Removed IS_DGFX() condition.
v3:
- Change naming convention from setup-d3cold to force-d3cold-wait
disable-display to disable-display-wait. [Rodrigo]
v4:
- Use igt_setup_runtime_pm() only for --disable-display-wait.
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
|
Use the i915 exported data in /proc/<pid>/fdinfo to show GPU utilization
per DRM client.
Example of the output:
intel-gpu-top: Intel Tigerlake (Gen12) @ /dev/dri/card0 - 220/ 221 MHz
70% RC6; 0.62/ 7.08 W; 760 irqs/s
ENGINES BUSY MI_SEMA MI_WAIT
Render/3D 23.06% |██████▊ | 0% 0%
Blitter 0.00% | | 0% 0%
Video 5.40% |█▋ | 0% 0%
VideoEnhance 20.67% |██████ | 0% 0%
PID NAME Render/3D Blitter Video VideoEnhance
3082 mpv | || ||▌ ||██ |
3117 neverball |█▉ || || || |
1 systemd |▍ || || || |
2338 gnome-shell | || || || |
v2:
* Removed hardcoded array size from client add/update by passing in
drm_fd_info directly.
* Added some asserts and simplified a couple expressions. (Umesh)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
|
|
Autotools have been deprecated in favor of Meson since early 2019.
Signed-off-by: Arkadiusz Hiler <arek@hiler.eu>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Add support for msm_dp_compliance to igt tools to validate
video pattern DP compliance tests on MSM chipsets.
changes in v2:
- fix indentation in meson file
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Move the terminal utility functions to a separate file so
that other modules can use it as well.
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Rename intel_dp_compliance_hotplug to igt_dp_compliance_hotplug so that
other modules can use the APIs.
changes in v2: none
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
In intel_gpu_top device path was hard coded for integrated GPU.
With this patch we:
* use igt_device_scan library for device scanning,
* make discrete GPU the default one,
* provided options for card selection.
v2:
* explicitly set ret to EXIT_SUCCESS after all the other uses
* fix use after free of opt_device (Tvrtko)
* use EXIT_FAILURE instead of "1" (Tvrtko)
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Ayaz A Siddiqui <ayaz.siddiqui@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
This library contains the database of performance metrics for each
supported generation as well as its associated programming.
It also allow for the user to get human readable data out of HW
generated data.
v2: Switch a few python scripts to python3
v3: Fix some python2-ism
s/lkf/ehl/
Autotools support
v4: set soversion on i915_perf.so
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Superseded by intel_dump_gpu in Mesa.
Signed-off-by: Matt Turner <mattst88@gmail.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Tool uses device selection API to scan and display GPU devices.
It can be used to check filter correctness as well as order
of applying the filters (.igtrc, IGT_DEVICE and --device argument).
v2 (Arek):
* don't print chip as it's no longer there
* make it a second patch, before any alterations to igt_core or drmtest
* use only a single filter
v3 (Arek):
* use igt_load_igtrc() (Petri)
* add usage example (Chris)
* general logic cleanup
LONG EXAMPLE:
$ ./build/tools/lsgpu --help
usage: lsgpu [options]
Options:
-p, --print-details Print devices with details
-v, --list-vendors List recognized vendors
-l, --list-filter-types List registered device filters types
-d, --device filter Device filter, can be given multiple times
-h, --help Show this help message and exit
$ ./build/tools/lsgpu
sys:/sys/devices/pci0000:00/0000:00:02.0/drm/card0
subsystem : drm
drm card : /dev/dri/card0
parent : sys:/sys/devices/pci0000:00/0000:00:02.0
sys:/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
subsystem : drm
drm render : /dev/dri/renderD128
parent : sys:/sys/devices/pci0000:00/0000:00:02.0
sys:/sys/devices/platform/vgem/drm/card1
subsystem : drm
drm card : /dev/dri/card1
parent : sys:/sys/devices/platform/vgem
sys:/sys/devices/platform/vgem/drm/renderD129
subsystem : drm
drm render : /dev/dri/renderD129
parent : sys:/sys/devices/platform/vgem
sys:/sys/devices/pci0000:00/0000:00:02.0
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
vendor : 8086
device : 5927
sys:/sys/devices/platform/vgem
subsystem : platform
drm card : /dev/dri/card1
drm render : /dev/dri/renderD129
$ ./build/tools/lsgpu -l
Filter types:
---
filter syntax
---
sys sys:/sys/devices/pci0000:00/0000:00:02.0
find device by its sysfs path
drm drm:/dev/dri/* path
find drm device by /dev/dri/* node
pci pci:[vendor=%04x/name][,device=%04x][,card=%d]
vendor is hex number or vendor name
$ ./build/tools/lsgpu -d pci:vendor=Intel
Notice: Using --device filters
=== Device filter ===
pci:vendor=Intel
=== Testing device open ===
Device detail:
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
Device /dev/dri/card0 successfully opened
Device /dev/dri/renderD128 successfully opened
-------------------------------------------
$ ./build/tools/lsgpu -d pci:vendor=intel
Notice: Using --device filters
=== Device filter ===
pci:vendor=intel
=== Testing device open ===
Device detail:
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
Device /dev/dri/card0 successfully opened
Device /dev/dri/renderD128 successfully opened
-------------------------------------------
$ ./build/tools/lsgpu -d pci:vendor=intel -p
Notice: Using --device filters
=== Device filter ===
pci:vendor=intel
=== Testing device open ===
Device detail:
subsystem : pci
drm card : /dev/dri/card0
drm render : /dev/dri/renderD128
Device /dev/dri/card0 successfully opened
Device /dev/dri/renderD128 successfully opened
========== pci:/sys/devices/pci0000:00/0000:00:02.0 ==========
card device : /dev/dri/card0
render device : /dev/dri/renderD128
[properties]
DEVPATH : /devices/pci0000:00/0000:00:02.0
DRIVER : i915
FWUPD_GUID : 0x8086:0x5927
ID_MODEL_FROM_DATABASE : Iris Plus Graphics 650
ID_PCI_CLASS_FROM_DATABASE : Display controller
ID_PCI_INTERFACE_FROM_DATABASE : VGA controller
ID_PCI_SUBCLASS_FROM_DATABASE : VGA compatible controller
ID_VENDOR_FROM_DATABASE : Intel Corporation
MODALIAS : pci:v00008086d00005927sv00008086sd00002068bc03sc00i00
PCI_CLASS : 30000
PCI_ID : 8086:5927
PCI_SLOT_NAME : 0000:00:02.0
PCI_SUBSYS_ID : 8086:2068
SUBSYSTEM : pci
USEC_INITIALIZED : 22881171
[attributes]
ari_enabled : 0
boot_vga : 1
broken_parity_status : 0
class : 0x030000
consistent_dma_mask_bits : 39
current_link_speed : Unknown speed
current_link_width : 0
d3cold_allowed : 1
device : 0x5927
dma_mask_bits : 39
driver_override : (null)
enable : 1
firmware_node : LNXVIDEO:00
index : 1
irq : 129
label : CPU
local_cpulist : 0-3
local_cpus : f
max_link_speed : Unknown speed
max_link_width : 255
msi_bus : 1
numa_node : -1
revision : 0x06
subsystem : pci
subsystem_device : 0x2068
subsystem_vendor : 0x8086
vendor : 0x8086
-------------------------------------------
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
HDMI 2.0 compliance tests needs 4K modes with YUV encoding.
This test selects 4K modes based on specified VIC.
v2:
- rename to amd_hdmi_compliance
- replace fprintf with igt_info/warn
- use EXIT_SUCCESS/FAILURE in exit()
Signed-off-by: Stylon Wang <stylon.wang@amd.com>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
|
|
Since upgrade to Meson 0.46.0 we can have multiple binaries with the
same name. Let's re-enable build of igt_stats!
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
While I'm pretty confident that no one cares to use libigt.so or
lib_aubdump.so anywhere outside of igt, many distributions including
Fedora and Debian strongly suggest that packages have some sort of so
versioning, even if it's just '0'. So, let's fulfill that minimum
requirement to make this easier to package.
Acked-by: Petri Latvala <petri.latvala@intel.com>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Lyude Paul <lyude@redhat.com>
|
|
Fix the meson build to not link intel-gpu-top against the whole test
infrastructure; it's a tool not a test!
Reported-by: Eero Tamminen <eero.t.tamminen@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110249
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
This tool serves as a wrapper around the constructs provided by the
drm_dpcd_aux_dev kernel module by working on the /dev/drm_dp_aux[n]
devices created by the kernel module.
It supports reading and writing dpcd registers on the connected aux
channels.
In the follow-up patch, support for decoding these registers will be
added to facilate debugging panel related issues.
v2: (Fixes by Rodrigo but no functional changes yet):
- Indentations, Typo, Missed spaces
- Removing mentioning to decode and spec that is not implemented yet.
- Add Makefile.sources back
- Missed s/printf/igt_warn
v3:
- Address DK's review comments from v2 above.
- Squash Rodrigo's file handling unification patch.
- Make count, offset and device id optional.
v4:
- Better error handling and refactoring.
Suggested-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Tarun Vyas <tarun.vyas@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
|
|
So they are located close to the definitions of the corresponding
install_dirs and can be reused easily.
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Since meson does not have variable scoping it gets confusing if you set
different values to the same variable in different places.
Let's prefix each generated rpathdir to be more explicit about their
intended use and to avoid accidental overwrites.
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
intel-gpu-top is a dangerous tool which can hang machines due unsafe mmio
register access. This patch rewrites it to use only PMU.
Only overall command streamer busyness and GPU global data such as power
and frequencies are included in this new version.
For access to more GPU functional unit level data, an OA metric based tool
like gpu-top should be used instead.
v2:
* Sort engines by class and instance.
* Do not wait for one sampling period to display something on screen.
* Move code out of the asserts. (Rinat Ibragimov)
* Continuously adapt to terminal size. (Rinat Ibragimov)
v3:
* Change layout and precision of some field. (Chris Wilson)
Eero Tamminen:
* Use more user friendly engine names.
* Don't error out if a counter is missing.
* Add IMC read/write bandwidth.
* Report minimum required kernel version.
v4:
* Really support 4.16 by skipping of missing engines.
* Simpler and less hacky float printing.
* Preserve copyright header. (Antonio Argenziano)
* Simplify engines_ptr macro. (Rinat Ibragimov)
v5:
* Get RAPL unit from sysfs.
* Consolidate sysfs paths with a macro.
* Tidy error handling by carrying over and reporting errno.
* Check against console height on all prints.
* More readable minimum kernel version message. (Eero Tamminen)
* Column banner for per engine stats. (Eero Tamminen)
v6:
* Man page update. (Eero Tamminen)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Eero Tamminen <eero.t.tamminen@intel.com>
Cc: Rinat Ibragimov <ibragimovrinat@mail.ru>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> # v1
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> # v0.5
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
|
|
While trying to capture an aubdump on a libva demo, I run into a crash
in intel_batchbuffer.c. Turn out every driver has it's own
intel_batchbuffer.c with similar symbols and because aubdump pulls in
libigt, things go wrong.
One could argue that there is something wrong with
intel-vaapi-driver's build but I also think aubdump should embed as
little as possible.
This change creates a very small library that embeds just the needed
bits of igt for aubdump.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Katarzyna Dec <katarzyna.dec@intel.com>
|
|
Meson builds libigt as a shared library, and executables naturally
have to find it at runtime. Using default options puts the library to
a normal search paths, but any modifications to the directory options
or a non-conventional prefix setting makes using LD_LIBRARY_PATH or
other library search means mandatory.
Add a build option 'use_rpath' (default: false) that makes meson set
up DT_RUNPATH at install time, pointing to the library with a path
relative to the executable, using $ORIGIN. That way the installed
executables find the library even when not installed to exactly the
build-time configured prefix path, a setup CI occasionally uses.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Tested-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
IGT_DATADIR needs to be an absolute path instead of relative to
prefix or data files can only be found if cwd is exactly prefix.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104723
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Fetch the configuration values in the toplevel meson.build for all
subdirs to share.
v2: Also remember tests/intel-ci/meson.build
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Only build intel_dp_compliance when libudev is available, also include
libudev in the list of dependencies.
Fixes error when libudev isn't there:
../tools/intel_dp_compliance_hotplug.c:33:21: fatal error: libudev.h: No such file or directory
#include <libudev.h>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Autotools didn't add the 'lib' prefix to the intel_aubdump.so filename.
Coerce meson to match that.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
v2: Fix spaces vs. tabs (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
v2: Fix spaces vs. tabs (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
FIXME: install_subdir exclude_files knob seems to require meson 0.42+.
Is that acceptable?
v2: Fix spaces vs. tabs (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
v2: Fix spaces vs. tabs (Jordan)
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Why?
Because it's fast.
Like really, really fast.
Some data (from a snb laptop, so rather lower-powered):
- Incremental build after $ touch lib/igt_core.c with meson: 0.6s
It notices that the symbol list of the libigt.so hasn't changed and
doesn't bother re-linking the almost 300 binaries we have. make -j 6
for the same scenario takes 44s.
- Incremental build with nothing changed: make: 0.7s, meson: 0.2s This
means stuff like --disable-git-hash is entirely pointless with
meson, it's faster than a make ever can be (with 0.6s).
- Reconfigure stage: ninja reconfigure 0.8s vs. ./configure 8.6s)
- Running tests, after a full build: ninja test 6s vs. make check 24s
- Full build (i.e. including ./autogen.sh respectively meson build),
including tests, from a pristine git checkout. automake 2m49s vs.
meson 44s.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Eric Anholt <eric@anholt.net>
Cc: Daniel Stone <daniel@fooishbar.org>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|