[RADV] Portal Revolution fails assertion in vk_image_view_init
Description
In a GNOME Wayland session, running Portal Revolution on a Picasso APU with RADV built from 30e09d0e, an assertion failed on the loading screen at 90%.
It worked with Debian Mesa 23.3.3-3 packages, might be just because assertions are disabled though.
The assertion failure happened on the first launch / with default settings. Now that I've lowered the video settings to better suit this machine, it's no longer happening.
Log files (for system lockups / game freezes / crashes)
Core was generated by `bin/linux64/revolution -game revolution'.
Program terminated with signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
Download failed: Invalid argument. Continuing without source file ./nptl/./nptl/pthread_kill.c.
44 ./nptl/pthread_kill.c: No such file or directory.
[Current thread is 1 (Thread 0x7fac34ffa6c0 (LWP 23218))]
(gdb) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007fac847ca15f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 0x00007fac8477c472 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007fac847664b2 in __GI_abort () at ./stdlib/abort.c:79
#4 0x00007fac847663d5 in __assert_fail_base (fmt=0x7fac848dadc8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7fac491de868 "driver_internal || !(image_view->usage & ~image_usage)",
file=file@entry=0x7fac4919f600 "../src/vulkan/runtime/vk_image.c", line=line@entry=561, function=function@entry=0x7fac48d8b650 <__PRETTY_FUNCTION__.8.lto_priv.41> "vk_image_view_init") at ./assert/assert.c:92
#5 0x00007fac847753a2 in __assert_fail (assertion=assertion@entry=0x7fac491de868 "driver_internal || !(image_view->usage & ~image_usage)", file=file@entry=0x7fac4919f600 "../src/vulkan/runtime/vk_image.c", line=line@entry=561,
function=function@entry=0x7fac48d8b650 <__PRETTY_FUNCTION__.8.lto_priv.41> "vk_image_view_init") at ./assert/assert.c:101
#6 0x00007fac493815ba in vk_image_view_init (device=<optimized out>, image_view=0x35221136ec0, driver_internal=<optimized out>, pCreateInfo=<optimized out>) at ../src/vulkan/runtime/vk_image.c:561
#7 0x00007fac492d16cc in radv_image_view_init (extra_create_info=<optimized out>, img_create_flags=8, pCreateInfo=0x7fac34ff9540, device=0x351f969c000, iview=0x35221136ec0) at ../src/amd/vulkan/radv_image_view.c:752
#8 radv_CreateImageView (_device=0x351f969c000, pCreateInfo=0x7fac34ff9540, pAllocator=<optimized out>, pView=0x35221031068) at ../src/amd/vulkan/radv_image_view.c:917
#9 0x00007fac747907cc in ?? () from /home/daenzer/.steam/debian-installation/steamapps/common/Portal Revolution/bin/linux64/libdxvk_d3d11.so
#10 0x00007fac7475475c in ?? () from /home/daenzer/.steam/debian-installation/steamapps/common/Portal Revolution/bin/linux64/libdxvk_d3d11.so
#11 0x00007fac7475b6cb in ?? () from /home/daenzer/.steam/debian-installation/steamapps/common/Portal Revolution/bin/linux64/libdxvk_d3d11.so
#12 0x00007fac74675e28 in ?? () from /home/daenzer/.steam/debian-installation/steamapps/common/Portal Revolution/bin/linux64/libdxvk_d3d11.so
#13 0x00007fac7476c774 in ?? () from /home/daenzer/.steam/debian-installation/steamapps/common/Portal Revolution/bin/linux64/libdxvk_d3d11.so
#14 0x00007fac7476d5ca in ?? () from /home/daenzer/.steam/debian-installation/steamapps/common/Portal Revolution/bin/linux64/libdxvk_d3d11.so
#15 0x00007fac748739f0 in ?? () from /home/daenzer/.steam/debian-installation/steamapps/common/Portal Revolution/bin/linux64/libdxvk_d3d11.so
#16 0x00007fac847c83ec in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:444
#17 0x00007fac84848a5c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb) frame 6
#6 0x00007fac493815ba in vk_image_view_init (device=<optimized out>, image_view=0x35221136ec0, driver_internal=<optimized out>, pCreateInfo=<optimized out>) at ../src/vulkan/runtime/vk_image.c:561
561 assert(driver_internal || !(image_view->usage & ~image_usage));
(gdb) l
556 const VkImageUsageFlags image_usage =
557 vk_image_usage(image, image_view->aspects);
558 const VkImageViewUsageCreateInfo *usage_info =
559 vk_find_struct_const(pCreateInfo, IMAGE_VIEW_USAGE_CREATE_INFO);
560 image_view->usage = usage_info ? usage_info->usage : image_usage;
561 assert(driver_internal || !(image_view->usage & ~image_usage));
562 }
563
564 void
565 vk_image_view_finish(struct vk_image_view *image_view)
(gdb) p driver_internal
$1 = <optimized out>
(gdb) p image_view
$2 = (struct vk_image_view *) 0x35221136ec0
(gdb) p *image_view
$3 = {base = {_loader_data = {loaderMagic = 30261470, loaderData = 0x1cdc0de}, type = VK_OBJECT_TYPE_IMAGE_VIEW, device = 0x351f969c000, instance = 0x0, client_visible = false, private_data = {elem_size = 8, node_size_log2 = 3,
root = 0}, object_name = 0x0}, create_flags = 0, image = 0x35217507800, view_type = VK_IMAGE_VIEW_TYPE_2D_ARRAY, format = VK_FORMAT_B8G8R8A8_SRGB, view_format = VK_FORMAT_B8G8R8A8_SRGB, swizzle = {
r = VK_COMPONENT_SWIZZLE_R, g = VK_COMPONENT_SWIZZLE_G, b = VK_COMPONENT_SWIZZLE_B, a = VK_COMPONENT_SWIZZLE_A}, aspects = 1, base_mip_level = 0, level_count = 1, base_array_layer = 0, layer_count = 1, storage = {
z_slice_offset = 0, z_slice_count = 1}, min_lod = 0, extent = {width = 1920, height = 1200, depth = 1}, usage = 16}
(gdb) p image_view->usage
$4 = 16
(gdb) p image_usage
$5 = <optimized out>
System information
System:
Host: thor Kernel: 6.6.12+ arch: x86_64 bits: 64 compiler: gcc v: 13.2.0
Desktop: GNOME v: 45.3 tk: GTK v: 3.24.39 wm: gnome-shell dm: GDM3
Distro: Debian GNU/Linux trixie/sid
CPU:
Info: quad core model: AMD Ryzen 7 3700U with Radeon Vega Mobile Gfx
bits: 64 type: MT MCP arch: Zen/Zen+ note: check rev: 1 cache: L1: 384 KiB
L2: 2 MiB L3: 4 MiB
Speed (MHz): avg: 2273 high: 3217 min/max: 1400/2300 boost: enabled cores:
1: 2146 2: 1635 3: 2300 4: 2146 5: 2146 6: 2300 7: 2300 8: 3217
bogomips: 36729
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
Device-1: AMD Picasso/Raven 2 [Radeon Vega Series / Radeon Mobile Series]
vendor: Lenovo ThinkPad E595 driver: amdgpu v: kernel arch: GCN-5 pcie:
speed: 8 GT/s lanes: 16 ports: active: DP-5 off: eDP-1 empty: DP-1, DP-2,
DP-3, DP-4, HDMI-A-1 bus-ID: 05:00.0 chip-ID: 1002:15d8 temp: 54.0 C
Device-2: Bison SunplusIT Integrated Camera driver: uvcvideo type: USB
rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 3-2:3 chip-ID: 5986:2113
Display: wayland server: X.org v: 1.21.1.11 with: Xwayland v: 21.1.99
compositor: gnome-shell driver: X: loaded: N/A unloaded: modesetting
alternate: fbdev,vesa gpu: amdgpu display-ID: 0
Monitor-1: DP-5 res: 1920x1200 size: N/A
API: EGL v: 1.5 platforms: device: 0 drv: radeonsi device: 1 drv: swrast
gbm: drv: kms_swrast surfaceless: drv: radeonsi wayland: drv: radeonsi x11:
drv: radeonsi
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd v: N/A glx-v: 1.4
direct-render: yes renderer: AMD Radeon Vega 10 Graphics (radeonsi raven
LLVM 17.0.6 DRM 3.56 6.6.12+) device-ID: 1002:15d8 display-ID: :0.0
API: Vulkan v: 1.3.268 surfaces: xcb,xlib,wayland device: 0
type: integrated-gpu driver: mesa radv device-ID: 1002:15d8
If applicable
- Wine/Proton version: Proton 8.0-4
Further information (optional)
Does your environment set any of the variables ACO_DEBUG
, RADV_DEBUG
, and RADV_PERFTEST
? No.