Skip to content

[AMD][DirectX] WaveOps/WaveActiveBallot.Wave64.test and WaveOps/WaveActiveBallot.Wave32.test fail on AMD #688

@Icohedron

Description

@Icohedron

The tests WaveOps/WaveActiveBallot.Wave64.test and WaveOps/WaveActiveBallot.Wave32.test fail on AMD on DirectX regardless of compiler (Clang and DXC).

Wave32:

╭────┬──────────────────────┬─────────────┬────────────────────────────────┬─────────────┬──────────────────────────────────────╮
│  # │      timestamp       │   run-id    │            workflow            │   status    │                 test                 │
├────┼──────────────────────┼─────────────┼────────────────────────────────┼─────────────┼──────────────────────────────────────┤
│  0 │ 2026-01-29T18:12:57Z │ 21489570083 │ Windows D3D12 AMD Clang        │ FAIL        │ WaveOps/WaveActiveBallot.Wave32.test │
│  1 │ 2026-01-29T18:06:16Z │ 21489369362 │ Windows D3D12 AMD DXC          │ FAIL        │ WaveOps/WaveActiveBallot.Wave32.test │
│  2 │ 2026-01-29T22:07:07Z │ 21496434353 │ Windows D3D12 NVIDIA Clang     │ PASS        │ WaveOps/WaveActiveBallot.Wave32.test │
│  3 │ 2026-01-29T18:09:25Z │ 21489464745 │ Windows D3D12 Warp Clang       │ PASS        │ WaveOps/WaveActiveBallot.Wave32.test │
│  4 │ 2026-01-29T18:14:45Z │ 21489625628 │ Windows ARM64 D3D12 Warp Clang │ PASS        │ WaveOps/WaveActiveBallot.Wave32.test │
│  5 │ 2026-01-29T22:04:34Z │ 21496361669 │ Windows D3D12 NVIDIA DXC       │ PASS        │ WaveOps/WaveActiveBallot.Wave32.test │
│  6 │ 2026-01-29T18:16:40Z │ 21489684038 │ Windows D3D12 Warp DXC         │ PASS        │ WaveOps/WaveActiveBallot.Wave32.test │
│  7 │ 2026-01-29T18:17:16Z │ 21489702202 │ Windows ARM64 D3D12 Warp DXC   │ PASS        │ WaveOps/WaveActiveBallot.Wave32.test │
│  8 │ 2026-01-29T18:12:50Z │ 21489566343 │ Windows D3D12 QC Clang         │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│  9 │ 2026-01-29T18:09:51Z │ 21489477958 │ Windows D3D12 QC DXC           │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 10 │ 2026-01-29T22:43:47Z │ 21497401454 │ macOS Metal Clang              │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 11 │ 2026-01-29T22:10:49Z │ 21496540147 │ macOS Metal DXC                │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 12 │ 2026-01-29T18:13:19Z │ 21489581552 │ Windows Vulkan AMD Clang       │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 13 │ 2026-01-29T22:03:44Z │ 21496336691 │ Windows Vulkan NVIDIA Clang    │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 14 │ 2026-01-29T18:11:51Z │ 21489537058 │ Windows Vulkan QC Clang        │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 15 │ 2026-01-29T18:12:58Z │ 21489570492 │ Windows Vulkan AMD DXC         │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 16 │ 2026-01-29T22:08:23Z │ 21496471001 │ Windows Vulkan NVIDIA DXC      │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
│ 17 │ 2026-01-29T18:15:33Z │ 21489650595 │ Windows Vulkan QC DXC          │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave32.test │
╰────┴──────────────────────┴─────────────┴────────────────────────────────┴─────────────┴──────────────────────────────────────╯

Wave64:

╭────┬──────────────────────┬─────────────┬────────────────────────────────┬─────────────┬──────────────────────────────────────╮
│  # │      timestamp       │   run-id    │            workflow            │   status    │                 test                 │
├────┼──────────────────────┼─────────────┼────────────────────────────────┼─────────────┼──────────────────────────────────────┤
│  0 │ 2026-01-29T18:12:57Z │ 21489570083 │ Windows D3D12 AMD Clang        │ FAIL        │ WaveOps/WaveActiveBallot.Wave64.test │
│  1 │ 2026-01-29T18:06:16Z │ 21489369362 │ Windows D3D12 AMD DXC          │ FAIL        │ WaveOps/WaveActiveBallot.Wave64.test │
│  2 │ 2026-01-29T18:12:50Z │ 21489566343 │ Windows D3D12 QC Clang         │ PASS        │ WaveOps/WaveActiveBallot.Wave64.test │
│  3 │ 2026-01-29T18:09:25Z │ 21489464745 │ Windows D3D12 Warp Clang       │ PASS        │ WaveOps/WaveActiveBallot.Wave64.test │
│  4 │ 2026-01-29T18:14:45Z │ 21489625628 │ Windows ARM64 D3D12 Warp Clang │ PASS        │ WaveOps/WaveActiveBallot.Wave64.test │
│  5 │ 2026-01-29T18:09:51Z │ 21489477958 │ Windows D3D12 QC DXC           │ PASS        │ WaveOps/WaveActiveBallot.Wave64.test │
│  6 │ 2026-01-29T18:16:40Z │ 21489684038 │ Windows D3D12 Warp DXC         │ PASS        │ WaveOps/WaveActiveBallot.Wave64.test │
│  7 │ 2026-01-29T18:17:16Z │ 21489702202 │ Windows ARM64 D3D12 Warp DXC   │ PASS        │ WaveOps/WaveActiveBallot.Wave64.test │
│  8 │ 2026-01-29T22:07:07Z │ 21496434353 │ Windows D3D12 NVIDIA Clang     │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│  9 │ 2026-01-29T22:04:34Z │ 21496361669 │ Windows D3D12 NVIDIA DXC       │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 10 │ 2026-01-29T22:43:47Z │ 21497401454 │ macOS Metal Clang              │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 11 │ 2026-01-29T22:10:49Z │ 21496540147 │ macOS Metal DXC                │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 12 │ 2026-01-29T18:13:19Z │ 21489581552 │ Windows Vulkan AMD Clang       │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 13 │ 2026-01-29T22:03:44Z │ 21496336691 │ Windows Vulkan NVIDIA Clang    │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 14 │ 2026-01-29T18:11:51Z │ 21489537058 │ Windows Vulkan QC Clang        │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 15 │ 2026-01-29T18:12:58Z │ 21489570492 │ Windows Vulkan AMD DXC         │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 16 │ 2026-01-29T22:08:23Z │ 21496471001 │ Windows Vulkan NVIDIA DXC      │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
│ 17 │ 2026-01-29T18:15:33Z │ 21489650595 │ Windows Vulkan QC DXC          │ UNSUPPORTED │ WaveOps/WaveActiveBallot.Wave64.test │
╰────┴──────────────────────┴─────────────┴────────────────────────────────┴─────────────┴──────────────────────────────────────╯

Example Logs
Windows D3D12 AMD DXC: https://github.com/llvm/offload-test-suite/actions/runs/21489369362/job/61907388223
Windows D3D12 AMD Clang: https://github.com/llvm/offload-test-suite/actions/runs/21489570083/job/61908118322
Both Clang and DXC appear to have the same incorrect outputs, suggesting a driver bug.

FAIL: OffloadTest-d3d12 :: WaveOps/WaveActiveBallot.Wave64.test (296 of 329)
******************** TEST 'OffloadTest-d3d12 :: WaveOps/WaveActiveBallot.Wave64.test' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 58
c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\split-file.exe C:\actions-runner\_work\offload-test-suite\offload-test-suite\OffloadTest\test\WaveOps\WaveActiveBallot.Wave64.test C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp
# executed command: 'c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\split-file.exe' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\OffloadTest\test\WaveOps\WaveActiveBallot.Wave64.test' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp'
# RUN: at line 59
"C:\actions-runner\_work\offload-test-suite\offload-test-suite\DXC\build\bin\dxc.exe" -T cs_6_6 -Fo C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp.o C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp/source.hlsl
# executed command: 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\DXC\build\bin\dxc.exe' -T cs_6_6 -Fo 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp.o' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp/source.hlsl'
# RUN: at line 60
c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\offloader.exe -debug-layer C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp/pipeline.yaml C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp.o
# executed command: 'c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\offloader.exe' -debug-layer 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp/pipeline.yaml' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave64.test.tmp.o'
# .---command stdout------------
# | Using DirectX API
# | Configuring execution on device: AMD Radeon RX 9070
# | RootSignature created.
# | Descriptor heap created.
# | Command structures created.
# | Event prepared.
# | Creating UAV: { Size = 64, Register = u1, Space = 0, HasCounter = 0 }
# |     EltSize = 4 NumElts = 16
# | UAV: HeapIdx = 0 EltSize = 4 NumElts = 16 HasCounter = 0
# | Buffers created.
# | PSO created.
# | Compute command list created.
# | Compute commands executed.
# | Read data back.
# `-----------------------------
# .---command stderr------------
# | Test failed: Test
# | Comparison Rule: BufferExact
# | Expected:
# | ---
# | Name:            ExpectedOut
# | Format:          UInt32
# | Stride:          4
# | Data:            [ 3221225471, 3221225471, 0, 0, 65535, 4294901760, 0, 
# |                    0, 0, 0, 0, 0, 2863311530, 2863311530, 0, 0 ]
# | OutputProps:
# |   Height:          0
# |   Width:           0
# |   Depth:           0
# | ...
# | Got:
# | ---
# | Name:            Out
# | Format:          UInt32
# | Stride:          4
# | Data:            [ 3221225471, 65535, 0, 2863311530, 2863311530, 0, 0, 
# |                    0, 0, 0, 0, 0, 0, 0, 0, 0 ]
# | OutputProps:
# |   Height:          0
# |   Width:           0
# |   Depth:           0
# | ...
# | Full Hex 64bit representation of Expected Buffer Values:
# | [ 0xbfffffff, 0xbfffffff, 0x0, 0x0, 0xffff, 0xffff0000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaaaaaaaa, 0xaaaaaaaa, 0x0, 0x0 ]
# | Full Hex 64bit representation of Actual Buffer Values:
# | [ 0xbfffffff, 0xffff, 0x0, 0xaaaaaaaa, 0xaaaaaaaa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
# | 
# `-----------------------------
# error: command failed with exit status: 1

--

********************
FAIL: OffloadTest-d3d12 :: WaveOps/WaveActiveBallot.Wave32.test (297 of 329)
******************** TEST 'OffloadTest-d3d12 :: WaveOps/WaveActiveBallot.Wave32.test' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 58
c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\split-file.exe C:\actions-runner\_work\offload-test-suite\offload-test-suite\OffloadTest\test\WaveOps\WaveActiveBallot.Wave32.test C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp
# executed command: 'c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\split-file.exe' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\OffloadTest\test\WaveOps\WaveActiveBallot.Wave32.test' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp'
# RUN: at line 59
"C:\actions-runner\_work\offload-test-suite\offload-test-suite\DXC\build\bin\dxc.exe" -T cs_6_6 -Fo C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp.o C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp/source.hlsl
# executed command: 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\DXC\build\bin\dxc.exe' -T cs_6_6 -Fo 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp.o' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp/source.hlsl'
# RUN: at line 60
c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\offloader.exe -debug-layer C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp/pipeline.yaml C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp.o
# executed command: 'c:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin\offloader.exe' -debug-layer 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp/pipeline.yaml' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\d3d12\WaveOps\Output\WaveActiveBallot.Wave32.test.tmp.o'
# .---command stdout------------
# | Using DirectX API
# | Configuring execution on device: AMD Radeon RX 9070
# | RootSignature created.
# | Descriptor heap created.
# | Command structures created.
# | Event prepared.
# | Creating UAV: { Size = 64, Register = u1, Space = 0, HasCounter = 0 }
# |     EltSize = 4 NumElts = 16
# | UAV: HeapIdx = 0 EltSize = 4 NumElts = 16 HasCounter = 0
# | Buffers created.
# | PSO created.
# | Compute command list created.
# | Compute commands executed.
# | Read data back.
# `-----------------------------
# .---command stderr------------
# | Test failed: Test
# | Comparison Rule: BufferExact
# | Expected:
# | ---
# | Name:            ExpectedOut
# | Format:          UInt32
# | Stride:          4
# | Data:            [ 3221225471, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 2863311530, 
# |                    0, 0, 0 ]
# | OutputProps:
# |   Height:          0
# |   Width:           0
# |   Depth:           0
# | ...
# | Got:
# | ---
# | Name:            Out
# | Format:          UInt32
# | Stride:          4
# | Data:            [ 3221225471, 65535, 0, 2863311530, 0, 0, 0, 0, 0, 0, 
# |                    0, 0, 0, 0, 0, 0 ]
# | OutputProps:
# |   Height:          0
# |   Width:           0
# |   Depth:           0
# | ...
# | Full Hex 64bit representation of Expected Buffer Values:
# | [ 0xbfffffff, 0x0, 0x0, 0x0, 0xffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaaaaaaaa, 0x0, 0x0, 0x0 ]
# | Full Hex 64bit representation of Actual Buffer Values:
# | [ 0xbfffffff, 0xffff, 0x0, 0xaaaaaaaa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
# | 
# `-----------------------------
# error: command failed with exit status: 1

--

Metadata

Metadata

Assignees

No one assigned

    Labels

    driver-bugBugs that are likely or confirmed GPU driver bugs

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions