radv regression after 84d9551b: vk: error: failed to submit CS
$ vkcube
WARNING: Experimental compiler backend enabled. Here be dragons! Incorrect rendering, GPU hangs and/or resets are likely
amdgpu: The CS has been rejected, see dmesg for more information.
vk: error: failed to submit CS
Aborted
$
dmesg output:
[221212.716603] [drm:amdgpu_syncobj_lookup_and_add_to_sync [amdgpu]] *ERROR* syncobj 3 failed to find fence @ 0 (-22)!
[221212.716635] [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed in the dependencies handling -22!
Same happens with RADV_PERFTEST=aco
and RADV_PERFTEST=
This happens with and without the Mesa overlay Vulkan layer.
Linux amd64, gcc 9.2.1-15 with -O1 -ggdb -march=znver1
.
libdrm 2.4.100+ compiled from libdrm git repo master branch.
Linux kernel 5.2.17-1
$ lspci | grep VGA
43:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Fiji [Radeon R9 FURY / NANO Series] (rev c8)
$ vulkaninfo | grep deviceName
deviceName = AMD RADV/ACO FIJI (LLVM 10.0.0)
$
Bisected to:
84d9551b232bdcead017b212cbb3e291486e698c is the first bad commit
commit 84d9551b232bdcead017b212cbb3e291486e698c
Author: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Date: Sun Oct 20 19:15:24 2019 +0200
radv: Always enable syncobj when supported for all fences/semaphores.
This simplifies code for timeline semaphores by needing to support
less configurations.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/amd/vulkan/radv_device.c | 2 --
1 file changed, 2 deletions(-)
valgrind executed:
$ RADV_PERFTEST=aco valgrind vkcube
...
WARNING: Experimental compiler backend enabled. Here be dragons! Incorrect rendering, GPU hangs and/or resets are likely
amdgpu: The CS has been rejected, see dmesg for more information.
vk: error: failed to submit CS
==60258==
==60258== Process terminating with default action of signal 6 (SIGABRT)
==60258== at 0x4A85081: raise (raise.c:51)
==60258== by 0x4A70534: abort (abort.c:79)
==60258== by 0x54F0259: radv_queue_submit_deferred (radv_device.c:4032)
==60258== by 0x54F0259: radv_process_submissions (radv_device.c:4078)
==60258== by 0x54F0C99: radv_queue_submit (radv_device.c:4098)
==60258== by 0x54F4FDD: radv_QueueSubmit (radv_device.c:4147)
==60258== by 0xC188A38: overlay_QueueSubmit(VkQueue_T*, unsigned int, VkSubmitInfo const*, VkFence_T*) (overlay.cpp:2150)
==60258== by 0x10D2BD: ??? (in /usr/bin/vkcube)
==60258== by 0x4A71BBA: (below main) (libc-start.c:308)
...
Aborted
With no Mesa overlay Vulkan layer:
$ VK_INSTANCE_LAYERS= valgrind vkcube
...
WARNING: Experimental compiler backend enabled. Here be dragons! Incorrect rendering, GPU hangs and/or resets are likely
amdgpu: The CS has been rejected, see dmesg for more information.
vk: error: failed to submit CS
==60279==
==60279== Process terminating with default action of signal 6 (SIGABRT)
==60279== at 0x4A85081: raise (raise.c:51)
==60279== by 0x4A70534: abort (abort.c:79)
==60279== by 0x54F0259: radv_queue_submit_deferred (radv_device.c:4032)
==60279== by 0x54F0259: radv_process_submissions (radv_device.c:4078)
==60279== by 0x54F0C99: radv_queue_submit (radv_device.c:4098)
==60279== by 0x54F4FDD: radv_QueueSubmit (radv_device.c:4147)
==60279== by 0x10D2BD: ??? (in /usr/bin/vkcube)
==60279== by 0x4A71BBA: (below main) (libc-start.c:308)
...
Aborted
Edited by Witold Baryluk