#1142206 vkd3d: FTBFS on armhf: Most tests segfault

Package:
src:vkd3d
Source:
src:vkd3d
Submitter:
Simon McVittie
Date:
2026-07-16 14:39:01 UTC
Severity:
normal
Tags:
#1142206#5
Date:
2026-07-16 14:29:07 UTC
From:
To:
After fixing (or working around?) #1142193 with the patch that I
attached there, when I try to build vkd3d in an armhf chroot on the
arm64 porterbox amdahl, most of the test suite segfaults. See attached
test-suite.log.

When I tried to get a backtrace using gdb, I got multiple of these
warnings, which might be relevant:

% p=$(basename "$(pwd)"); d=; a=armhf; s="smcv${p:+"-$p"}${d:+"-$d"}${a:+"-$a"}"; schroot -c "$s" -r -- libtool --mode=execute linux32 gdb ./tests/hlsl_d3d12
...
warning: JITed object file architecture armv8-a is not compatible with target architecture armv7.

I don't know whether this failure mode would also occur on buildds, and
I don't think out-of-archive mechanisms like Salsa-CI and debusine offer
an armhf environment.

Wine upstream no longer supports 32-bit ARM, and nothing in Debian seems
to depend on vkd3d anyway, so I think it might be most realistic to drop
vkd3d from the armhf architecture and then ask the ftp team to remove
the old "cruft" binaries, rather than chasing after a solution to this.

    smcv

#1142206#10
Date:
2026-07-16 14:37:28 UTC
From:
To:
I was able to get this backtrace, which seems like the issue might be in
generated code (?) in Mesa, rather than vkd3d, if it helps:

smcv@amdahl ~/vkd3d % p=$(basename "$(pwd)"); d=; a=armhf; s="smcv${p:+"-$p"}${d:+"-$d"}${a:+"-$a"}"; schroot -c "$s" -r -- libtool --mode=execute env DEBUGINFOD_URLS=https://debuginfod.debian.net linux32 gdb ./tests/hlsl_d3d12
...
#0  0xf6fdee2e in vk_enqueue_cmd_pipeline_barrier2 (queue=queue@entry=0x23ef6e4, pDependencyInfo=<optimized out>)
     at src/vulkan/runtime/vk_cmd_queue.c:5664
#1  0xf6feb2d0 in vk_cmd_enqueue_CmdPipelineBarrier2 (commandBuffer=0x23ef180, pDependencyInfo=<optimized out>)
     at src/vulkan/runtime/vk_cmd_queue.c:15386
#2  0xf6fd7950 in vk_common_CmdPipelineBarrier (commandBuffer=0x23ef180, srcStageMask=<optimized out>,
     dstStageMask=2296, dependencyFlags=0, memoryBarrierCount=<optimized out>, pMemoryBarriers=<optimized out>,
     bufferMemoryBarrierCount=<optimized out>, pBufferMemoryBarriers=<optimized out>,
     imageMemoryBarrierCount=<optimized out>, pImageMemoryBarriers=<optimized out>)
     at ../src/vulkan/runtime/vk_synchronization.c:250
#3  0xf7f42ad2 in d3d12_command_list_transition_resource_to_initial_state (list=list@entry=0x239c110,
     resource=resource@entry=0x4b7148) at libs/vkd3d/command.c:2495
#4  0xf7f4765e in d3d12_command_list_track_resource_usage (list=0x239c110, resource=0x4b7148)
     at libs/vkd3d/command.c:2506
#5  d3d12_command_list_track_resource_usage (list=0x239c110, resource=0x4b7148) at libs/vkd3d/command.c:2499
#6  d3d12_command_list_clear_uav (list=list@entry=0x239c110, resource=resource@entry=0x4b7148, descriptor=0x4751f8,
     clear_colour=clear_colour@entry=0xfffef84c, rect_count=<optimized out>, rect_count@entry=0,
     rects=<optimized out>, rects@entry=0x0) at libs/vkd3d/command.c:5629
#7  0xf7f4c46e in d3d12_command_list_ClearUnorderedAccessViewUint (iface=0x239c110, gpu_handle=..., cpu_handle=...,
     resource=<optimized out>, values=<optimized out>, rect_count=<optimized out>, rects=<optimized out>)
     at libs/vkd3d/command.c:5853
#8  0x0040835c in ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint (This=0x239c110, gpu_handle=...,
     cpu_handle=..., resource=0x4b7148, values=0xfffefa24, rect_count=0, rects=0x0) at ./include/vkd3d_d3d12.h:5219
#9  test_thread_id () at tests/hlsl_d3d12.c:617
#10 0x00402970 in vkd3d_test_main (argc=<optimized out>, argv=<optimized out>) at tests/hlsl_d3d12.c:4039
#11 main (argc=1, argv=0xfffefc24) at ./include/private/vkd3d_test.h:314

     smcv