!30610 broke piglit program@execute@bswap with rusticl on radeonsi
System information
System:
Host: kaveri Kernel: 6.10.4-amd64 arch: x86_64 bits: 64 compiler: gcc
v: 13.3.0
Desktop: N/A wm: gnome-shell lm: seatd Distro: Debian GNU/Linux trixie/sid
CPU:
Info: 8-core model: AMD Ryzen 7 1700 bits: 64 type: MT MCP arch: Zen rev: 1
cache: L1: 768 KiB L2: 4 MiB L3: 16 MiB
Speed (MHz): avg: 1701 high: 3000 min/max: 1550/3000 boost: enabled cores:
1: 1550 2: 1550 3: 1550 4: 1550 5: 1550 6: 1550 7: 2700 8: 1550 9: 1550
10: 1377 11: 1550 12: 1550 13: 1550 14: 3000 15: 1550 16: 1550
bogomips: 95989
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
[22930.979204] amdgpu 0000:25:00.0: amdgpu: Disabling VM faults because of PRT request!
Graphics:
Device-1: AMD Bonaire XT [Radeon HD 7790/8770 / R7 360 R9 260/360 OEM]
vendor: Hightech Information System driver: amdgpu v: kernel arch: GCN-2
pcie: speed: 5 GT/s lanes: 4 ports: active: none empty: DP-1, DVI-D-1,
DVI-I-1, HDMI-A-1 bus-ID: 25:00.0 chip-ID: 1002:665c
Device-2: AMD Navi 14 [Radeon RX 5500/5500M / Pro 5500M]
vendor: Tul / PowerColor driver: amdgpu v: kernel arch: RDNA-1 pcie:
speed: 16 GT/s lanes: 16 ports: active: none off: DP-2
empty: DVI-D-2,HDMI-A-2 bus-ID: 28:00.0 chip-ID: 1002:7340
Display: unspecified server: X.Org v: 21.1.99 with: Xwayland v: 21.1.99
compositor: gnome-shell driver: X: loaded: N/A failed: amdgpu dri: swrast
gpu: amdgpu display-ID: localhost:10.0 screens: 1
Screen-1: 0 s-res: 1920x1200 s-dpi: 96
Monitor-1: DP-2 mapped: DP-5 note: disabled model: HP LA2306
res: 1920x1200 dpi: 94 diag: 585mm (23")
API: EGL v: 1.5 platforms: device: 0 drv: radeonsi device: 1 drv: radeonsi
device: 2 drv: swrast gbm: drv: radeonsi surfaceless: drv: radeonsi wayland:
drv: radeonsi x11: drv: swrast
API: OpenGL v: 4.6 compat-v: 4.5 vendor: mesa v: 24.3.0-devel glx-v: 1.4
direct-render: yes renderer: llvmpipe (LLVM 18.1.8 256 bits)
device-ID: ffffffff:ffffffff
API: Vulkan v: 1.3.283 surfaces: xcb,xlib,wayland device: 0
type: discrete-gpu driver: N/A device-ID: 1002:665c device: 1
type: discrete-gpu driver: N/A device-ID: 1002:7340
Describe the issue
> RUSTICL_ENABLE=radeonsi .../piglit/bin/cl-program-tester .../piglit/tests/cl/program/execute/bswap.cl
# Running on:
# Platform: rusticl
# Device: AMD Radeon HD 7700 Series (radeonsi, bonaire, LLVM 18.1.8, DRM 3.57, 6.10.4-amd64)
# OpenCL version: 2.0
# OpenCL C version: 1.2
# Build options: -cl-std=CL1.2
Program has been built successfully
> Running kernel test: v_bswap_u32
Using kernel v_bswap_u32
Setting kernel arguments...
Running the kernel...
Validating results...
Expecting 4294967295 (0xffffffff) with tolerance 0, but got 0 (0x0)
Error at uint[1]
Argument 0: FAIL
> Running kernel test: s_bswap_u32
Using kernel s_bswap_u32
Setting kernel arguments...
Running the kernel...
Validating results...
Expecting 4294967295 (0xffffffff) with tolerance 0, but got 0 (0x0)
Error at uint[1]
Argument 0: FAIL
[...]
# Running on:
# Platform: rusticl
# Device: AMD Radeon RX 5500 XT (radeonsi, navi14, LLVM 18.1.8, DRM 3.57, 6.10.4-amd64)
# OpenCL version: 2.0
# OpenCL C version: 1.2
# Build options: -cl-std=CL1.2
Program has been built successfully
> Running kernel test: v_bswap_u32
Using kernel v_bswap_u32
Setting kernel arguments...
Running the kernel...
Validating results...
Expecting 0 (0x0) with tolerance 0, but got 2309717689 (0x89ab7eb9)
Error at uint[0]
Argument 0: FAIL
> Running kernel test: s_bswap_u32
Using kernel s_bswap_u32
Setting kernel arguments...
Running the kernel...
Validating results...
Expecting 0 (0x0) with tolerance 0, but got 2040827830 (0x79a48fb6)
Error at uint[0]
Argument 0: FAIL
[...]
Stderr:
Unknown NIR alu instr: div 32 %38 = pack_32_4x8_split %31, %33, %36, %37
Unknown NIR alu instr: div 32 %19 = pack_32_4x8_split %11, %14, %17, %18
Unknown NIR alu instr: div 32 %39 = pack_32_4x8_split %32, %34, %37, %38
Unknown NIR alu instr: div 32 %20 = pack_32_4x8_split %12, %15, %18, %19
Regression
Yes, bisected to 0f937426:
commit 0f937426cc9c6bfbb8fa9f1da3481082aa99aba1
Author: Qiang Yu <yuq825@gmail.com>
Date: Mon Jul 22 17:21:17 2024 +0800
radeonsi: lower subgroup ops after wave size is known
We use wave 32 sometime so should not use static subgroup
size of 64.
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30610>
/cc @yuq825