llvm / llvm/offload-test-suite

[Intel][DirectX] All Matrix tests are crashing on intel Xe GPUs

Open
#696 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
18
Forks
39
Avg merge
2d 18h
Merged PRs (30d)
40

Description

There isn't much to go on. I'm also having a hard time creating a pix capture because of how quickly this is crashing.
Another interesting tidbit. The Gen11 and older Intel GPUs appear to be working fine on the matrix tests. I think it is very likely we will need to file a vendor bug, but would be good to get a pix capture first

## Repro steps
```
offloader.exe -debug-layer -adapter-regex=Intel matrix_const_single_subscript.i2x3.test.tmp/pipeline.yaml matrix_const_single_subscript.i2x3.test.tmp.o
```
## Devices Crash was Observed
> GPU 0
```
VendorId = Intel (0x8086)
deviceID = 0x4680
isUMAArchitecture = TRUE
videoMemory = 63.88 GiB (68594716672 B)
description = Intel(R) UHD Graphics 770
extensionVersion = 0x70000
intelExtensionAvailability = TRUE
dxDriverVersion = 32.0.101.7082
driverInfo.driverReleaseRevision = 101
driverInfo.driverBuildNumber = 7082
DefaultFidelityPreset = Low (0x1)
GPUArchitecture = Alderlake
GraphicsGeneration = Gen12 / Xe
euCount = 32
packageTDP = 125
maxFillRate = 8
maxFrequency = 1500
minFrequency = 300

```
> GPU 1
```
VendorId = Intel (0x8086)
deviceID = 0x56A0
isUMAArchitecture = FALSE
videoMemory = 15.88 GiB (17045651456 B)
description = Intel(R) Arc(TM) A770 Graphics
extensionVersion = 0x70000
intelExtensionAvailability = TRUE
DefaultFidelityPreset = Low (0x1)
GPUArchitecture = Alchemist
GraphicsGeneration = Xe High Performance Graphics
euCount = 512
packageTDP = 0
maxFillRate = 128
maxFrequency = 2400
minFrequency = 300
```

## Stack trace
```
# | 0. Program arguments: e:\\project\\llvm-build\\bin\\offloader.exe -debug-layer -adapter-regex=Intel E:\\project\\llvm-build\\tools\\OffloadTest\\test\\clang-d3d12\\Basic\\Matrix\\Output\\matrix_const_single_subscript.i2x3.test.tmp/pipeline.yaml E:\\project\\llvm-build\\tools\\OffloadTest\\test\\clang-d3d12\\Basic\\Matrix\\Output\\matrix_const_single_subscript.i2x3.test.tmp.o
# | D3D: ID3D12Device::RemoveDevice: Device removal has been triggered for the following reason (DXGI_ERROR_DRIVER_INTERNAL_ERROR: There is strong evidence that the driver has performed an undefined operation; but it may be because the application performed an illegal or undefined operation to begin with.).
# | Exception Code: 0x0000087A
# | #0 0x00007ffe32f9a80a (C:\WINDOWS\System32\KERNELBASE.dll+0xca80a)
# | #1 0x00007ffdf61f4f4f (C:\WINDOWS\SYSTEM32\DXGIDebug.dll+0x4f4f)
# | #2 0x00007ffd9a9352c8 (C:\WINDOWS\SYSTEM32\D3D12SDKLayers.dll+0xf52c8)
# | #3 0x00007ffd9a87da36 (C:\WINDOWS\SYSTEM32\D3D12SDKLayers.dll+0x3da36)
# | #4 0x00007ffd9a860787 (C:\WINDOWS\SYSTEM32\D3D12SDKLayers.dll+0x20787)
# | #5 0x00007ffd9a87c4f3 (C:\WINDOWS\SYSTEM32\D3D12SDKLayers.dll+0x3c4f3)
# | #6 0x00007ffd9ad79333 (C:\WINDOWS\SYSTEM32\D3D12Core.dll+0x99333)
# | #7 0x00007ffd9ad20ccb (C:\WINDOWS\SYSTEM32\D3D12Core.dll+0x40ccb)
# | #8 0x00007ffd9ad3d4ff (C:\WINDOWS\SYSTEM32\D3D12Core.dll+0x5d4ff)
# | #9 0x00007ffd9ad33141 (C:\WINDOWS\SYSTEM32\D3D12Core.dll+0x53141)
# | #10 0x00007ffd9ad32de8 (C:\WINDOWS\SYSTEM32\D3D12Core.dll+0x52de8)
# | #11 0x00007ffd9ad5c5f9 (C:\WINDOWS\SYSTEM32\D3D12Core.dll+0x7c5f9)
# | #12 0x00007ffd9ad30fdb (C:\WINDOWS\SYSTEM32\D3D12Core.dll+0x50fdb)
# | #13 0x00007ffd9a896b3e (C:\WINDOWS\SYSTEM32\D3D12SDKLayers.dll+0x56b3e)
# | #14 0x00007ffd9a8670aa (C:\WINDOWS\SYSTEM32\D3D12SDKLayers.dll+0x270aa)
# | #15 0x00007ffd9a868718 (C:\WINDOWS\SYSTEM32\D3D12SDKLayers.dll+0x28718)
# | #16 0x00007ffe02301707 (C:\WINDOWS\SYSTEM32\d3d12.dll+0x1707)
# | #17 0x00007ffd9acf7e06 (C:\WINDOWS\SYSTEM32\D3D12Core.dll+0x17e06)
# | #18 0x00007ffd9ad5b60c (C:\WINDOWS\SYSTEM32\D3D12Core.dll+0x7b60c)
# | #19 0x00007ffd9a864d8a (C:\WINDOWS\SYSTEM32\D3D12SDKLayers.dll+0x24d8a)
# | #20 0x00007ff7d262fb25 HR::toError E:\project\offload-test-suite\include\Support\WinError.h:20:0
# | #21 0x00007ff7d262fb25 `anonymous namespace'::DXDevice::createComputePSO E:\project\offload-test-suite\lib\API\DX\Device.cpp:505:0
# | #22 0x00007ff7d262cd75 llvm::Error::getPtr E:\project\llvm-project\llvm\include\llvm\Support\Error.h:277:0
# | #23 0x00007ff7d262cd75 llvm::Error::operator bool E:\project\llvm-project\llvm\include\llvm\Support\Error.h:241:0
# | #24 0x00007ff7d262cd75 `anonymous namespace'::DXDevice::executeProgram E:\project\offload-test-suite\lib\API\DX\Device.cpp:1569:0
# | #25 0x00007ff7d2542e75 run E:\project\offload-test-suite\tools\offloader\offloader.cpp:159:0
# | #26 0x00007ff7d25425f7 main E:\project\offload-test-suite\tools\offloader\offloader.cpp:87:0
# | #27 0x00007ff7d2df1420 invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78:0
# | #28 0x00007ff7d2df1420 __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:0
# | #29 0x00007ffe3446e8d7 (C:\WINDOWS\System32\KERNEL32.DLL+0x2e8d7)
# | #30 0x00007ffe359cc53c (C:\WINDOWS\SYSTEM32\ntdll.dll+0x8c53c)
# `-----------------------------
```

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with lib/API/DX/Device.cpp at createComputePSO (line 505) and executeProgram (line 1569), then run the provided offloader.exe command against the listed Intel Xe devices. Compare the matrix-test crash with the working Gen11 and older GPUs and capture the relevant DirectX behavior. Done means identifying whether the failure is in the application or Intel's driver, with evidence for a vendor bug if applicable.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.