Samuel Pitoiset
8d7f78ccf8
radv: append a time string to the hang report dump directory
...
Using the PID only isn't really informative.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7706 >
2020-11-23 08:44:52 +01:00
Samuel Pitoiset
15e1b530f6
radv: print more debug messages when generating a hang report
...
If for some reasons the driver can't generate the hang report properly.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7706 >
2020-11-23 08:44:52 +01:00
Bas Nieuwenhuizen
347a3d68cd
radv: Dump BO VA ranges on hang.
...
To make it easier to figure out if a given VA is valid or not.
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3620
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7205 >
2020-11-21 14:25:53 +00:00
Tony Wasserka
cba6ec309a
radv: Fix -Wshadow warnings
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7430 >
2020-11-20 09:29:19 +00:00
Samuel Pitoiset
33c9d4bf31
radv: replace RADV_TRACE_FILE by RADV_DEBUG=hang
...
The trace file will be dumped as part of the hang report into
$HOME/radv_dumps_<pid>/trace.log if a GPU hang is detected.
The old and famous RADV_TRACE_FILE envvar is now deprecated.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7233 >
2020-10-23 07:35:00 +00:00
Samuel Pitoiset
9516f9369e
radv: re-order GPU hang report dumps by usefulness
...
In case the GPU recover, it's probably better to dump useful info
first.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7233 >
2020-10-23 07:35:00 +00:00
Samuel Pitoiset
719b9b3e27
radv: dump GPU hang report logs into $HOME/radv_dumps_<pid>
...
This creates a directory and save various logs (dmesg, umr,
pipeline, gpu info, etc) instead of printing stuff to stdout/stderr.
This dumps the following files when a GPU hang is detected:
- dmesg.log
- gpu_info.lo
- options.log
- pipeline.log (shaders including SPIR-V if spirv-dis found)
- registers.log
- trace.log
- vm_fault (if a VM fault is detected)
- umr_ring.log (if UMR found)
- umr_waves.log (if UMR found)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7233 >
2020-10-23 07:35:00 +00:00
Samuel Pitoiset
ef6d374307
radv: dump UMR ring and waves into the hang report
...
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3620
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7233 >
2020-10-23 07:35:00 +00:00
Samuel Pitoiset
18477241c1
radv: add radv_dump_cmd() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7233 >
2020-10-23 07:35:00 +00:00
Samuel Pitoiset
bf66bbda80
ac: add an option to dump GPU info to a file
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7233 >
2020-10-23 07:35:00 +00:00
James Park
28d02b9d3e
ac,amd/llvm,radv: Initialize structs with {0}
...
Necessary to compile with MSVC.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7123 >
2020-10-14 12:15:23 +00:00
Marek Olšák
b7a6333ee4
amd/registers: switch to new generated register definitions
...
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6423 >
2020-09-01 08:45:54 -04:00
Samuel Pitoiset
8b1ab78985
radv: dump GPU info into the hang report
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6471 >
2020-09-01 08:27:52 +02:00
Samuel Pitoiset
aa675cdc91
radv: improve reporting faulty pipelines when a GPU hang is detected
...
Because the driver now waits for idle after every draw/dispatch
calls, we shouldn't report gfx pipelines when the GPU hang happens
after a dispatch (or the opposite).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6471 >
2020-09-01 08:27:48 +02:00
Samuel Pitoiset
8301a43f27
radv: dump shader stats with VK_KHR_pipeline_executable_properties
...
Instead of duplicating shader statistics in two different parts
in the driver. This also now reports the LDS size in bytes instead
of blocks with VK_AMD_shader_info.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6406 >
2020-08-31 09:42:25 +02:00
Samuel Pitoiset
0fd33207b7
radv: allocate the TMA BO into 32-bit addr space
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6453 >
2020-08-25 13:15:35 +02:00
Samuel Pitoiset
d243d21ffc
radv: align the TMA BO size to 256
...
The hardware requires 256 byte-aligned address.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6453 >
2020-08-25 13:15:32 +02:00
Samuel Pitoiset
48a910d1f9
radv: use the trap handler to detect faulty shaders/instructions
...
It should reliably report the faulty shader but the faulty instruction
is inacurate, especially for memory violations because it's reported
when the addr is processed. It will be improved by emitting more
wait-states.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6384 >
2020-08-24 11:08:24 +00:00
Samuel Pitoiset
af3230e39e
radv: add initial trap handler support with RADV_TRAP_HANDLER=1
...
A trap handler is used to handle shader exceptions like memory
violations, divide by zero etc. The trap handler shader code will
help to identify the faulty shader/instruction and to report
more information for better debugging.
This has only been tested on GFX8, though it should work on GFX6-GFX7.
It seems we need a different implemenation for GFX9+.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6384 >
2020-08-24 11:08:24 +00:00
Samuel Pitoiset
f811ddf5d1
radv: ignore BB labels when splitting the disassembly string
...
Ignore everything that is not an instruction. This should fix
the annotated UMR disassembly.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6387 >
2020-08-21 10:34:22 +02:00
Daniel Schürmann
db0afb3800
radv: change use_aco -> use_llvm
...
We are about to make ACO the default backend.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5445 >
2020-06-25 15:16:28 +02:00
Samuel Pitoiset
f105b69464
radv: report correct backend IR in hang reports when ACO is used
...
Trivial.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4911 >
2020-05-08 08:45:26 +02:00
Samuel Pitoiset
290d480c55
radv: do not print the LLVM version string twice in hang reports
...
It's already part of the device name, and it should now also
correctly report when ACO is used.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4911 >
2020-05-08 08:45:26 +02:00
Samuel Pitoiset
740cb3d193
radv: use RADEON_FLAG_ZERO_VRAM when creating the trace BO
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3888 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3888 >
2020-02-20 18:47:34 +01:00
Samuel Pitoiset
0b3bd1a7c2
radv: fix 32-bit compiler warnings
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2031
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-11-06 08:00:33 +01:00
Samuel Pitoiset
d4e0bef1bb
radv: fix dumping SPIR-V into hang reports
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-10-30 13:02:08 +00:00
Samuel Pitoiset
b139198b06
radv: do not dump descriptors twice in hang reports
...
If a pipeline has both graphics and compute, descriptors are same.
While we are at it, use queue->device for simplicity.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-10-21 08:50:39 +02:00
Samuel Pitoiset
cf5e55558e
radv: dump trace files earlier if a GPU hang is detected
...
To make sure a trace file is generated in case the driver crashes
during the hang report generation (which happens sometimes).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-10-21 08:50:39 +02:00
Samuel Pitoiset
bc2319deb2
radv: print which ring is dumped in hang reports
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-10-21 08:50:39 +02:00
Samuel Pitoiset
076f9dce7c
radv: do not print useless descriptors info in hang reports
...
This information has never been useful. All descriptors are
already dumped with colors etc, and it's more useful.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-10-21 08:50:39 +02:00
Rhys Perry
3c966fd688
aco,radv: rename record_llvm_ir/llvm_ir_string to record_ir/ir_string
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-09-26 11:08:47 +01:00
Bas Nieuwenhuizen
5444d3e0c2
radv: Use string for nir dumping.
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Allows us to easily dump all nir shaders for combined variants in
vega and simplifies ownership.
2019-08-12 23:00:24 +02:00
Samuel Pitoiset
2b6a089813
radv: tidy up radv_get_shader_name() and add NGG stages
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-12 08:19:53 +02:00
Samuel Pitoiset
49e5136887
ac: select the GFX ring when halting waves with UMR on GFX10
...
GFX10 has two rings, so UMR want to know which one to halt.
Select the first one by default.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-08 09:10:57 +02:00
Samuel Pitoiset
bdd8acde02
radv/gfx10: use the correct register for image descriptor dumping
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-07 17:51:31 +02:00
Marek Olšák
abe9a51d27
ac: add radeon_info::is_amdgpu instead of checking drm_major == 3
...
and clean up
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-06-14 13:31:18 -04:00
Nicolai Hähnle
f480b8aaa4
amd/common: use generated register header
2019-06-03 20:05:20 -04:00
Marek Olšák
ccfcb9d818
ac: rename SI-CIK-VI to GFX6-GFX7-GFX8
...
Acked-by: Dave Airlie <airlied@redhat.com >
We already use GFX9 and I don't want us to have confusing naming
in the driver. GFXn naming is better from the driver perspective,
because it's the real version of the gfx portion of the hw. Also,
CIK means Bonaire-Kaveri-Kabini, it doesn't mean CI.
It shouldn't confuse our SDMA, UVD, VCE etc. code much. Those have
nothing to do with GFXn and they have their own version numbers.
2019-05-15 20:54:10 -04:00
Eric Engestrom
05b114e526
simplify LLVM version string printing
...
Figure it out once in the build system, then just use that all over the place.
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
2019-04-04 16:08:11 +00:00
Bas Nieuwenhuizen
ead54d4a42
radv/winsys: Set winsys bo priority on creation.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2019-01-29 15:56:41 +01:00
Marek Olšák
6703fec58c
amd,radeonsi: rename radeon_winsys_cs -> radeon_cmdbuf
...
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-06-19 13:08:50 -04:00
Samuel Pitoiset
66e38654c9
radv: fix dumping compute shader on the graphics queue
...
The graphics pipeline can be NULL.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-05-25 11:58:07 +02:00
Samuel Pitoiset
de06dfa9ea
radv: add radv_dump_pipeline_state() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-05-25 11:58:05 +02:00
Samuel Pitoiset
6f0530ecfe
radv: rework how shaders are dumped when generating a hang report
...
Use a flag for the active stages instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-05-25 11:58:03 +02:00
Samuel Pitoiset
8c406f0b4d
radv: remove unused parameter in radv_dump_annotated_shader()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-05-25 11:57:59 +02:00
Marek Olšák
f9eb1ef870
amd: remove support for LLVM 4.0
...
It doesn't support GFX9.
Acked-by: Dave Airlie <airlied@redhat.com >
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2018-05-17 14:54:41 -04:00
Samuel Pitoiset
7bd5367546
Revert "radv: Don't store buffer references in the descriptor set."
...
In order to reduce a performance regression introduced by
4b13fe55a4
("radv: Keep a global BO list for VkMemory."),
we are going to maintain two different paths.
One when VK_EXT_descriptor_indexing is enabled by the
application because we need to have a global BO list, and
one (the old one) when it's not enabled.
With Talos on Polaris, the global BO list reduces performance
by 10% which is too much for me.
This reverts commit ab6cadd3ec
.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-04-20 16:18:13 +02:00
Samuel Pitoiset
4a698660ae
radv: dump the SHA1 of SPIRV in the hang report
...
Might be useful for debugging purposes, especially when we
want to replace a shader on the fly.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-04-19 09:09:52 +02:00
Bas Nieuwenhuizen
ab6cadd3ec
radv: Don't store buffer references in the descriptor set.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
2018-04-18 22:56:54 +02:00
Samuel Pitoiset
16ecf037f9
radv: dump LLVM IR when a hang is detected
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2018-03-15 17:20:07 +01:00