microsoft / microsoft/DirectXShaderCompiler

Some SM69 Vectorized QuadRead and other tests fail on x86 WARP

Open
#8,591 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-triage
Dominant language
C++
Stars
3.7k
Forks
900
Avg merge
2d 11h
Merged PRs (30d)
44

Description

The following tests hit OOM issues when running on WARP in x86 builds. These tests stress warps shader compiler to use too much memory for large vectors on x86 builds.

We likely just need to cap the vector size to something smaller than 1024 when running on x86 against WARP. The size 512 cases pass.
Updating the pipelines running this against x86 WARP to use the IsRITP runtime parameter is also a reasonable option.

clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::AsDouble_uint32_t
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::AsUint_SplitDouble_double
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::QuadReadAcrossDiagonal_HLSLHalf_t
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::QuadReadAcrossDiagonal_float
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::QuadReadAcrossX_HLSLHalf_t
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::QuadReadAcrossX_float
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::QuadReadAcrossY_HLSLHalf_t
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::QuadReadAcrossY_float
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::QuadReadLaneAt_HLSLHalf_t
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::QuadReadLaneAt_float
clang-taef-exec :: ExecHLSLTests.dll/DxilConf_SM69_Vectorized_Core::QuadReadLaneAt_uint16_t

Failure in logs:
Compiling shader:

Target profile: cs_6_9

Arguments:  -enable-16bit-types -DTYPE=uint16_t -DNUM=1024 -DOPERATOR= -DFUNC=TestQuadRead -DFUNC_TEST_QUAD_READ=1 -DNUMTHREADS_XYZ=2,2,1 -DOP_STORES_RESULT_ON_SPECIFIC_LANE=1 -DQUAD_READ_FUNC=QuadReadLaneAt -DSOURCE_LANE_ID=2 -DOUT_TYPE=uint16_t -DBASIC_OP_TYPE=0x2

Device lost: 0x887a0005 (DXGI_ERROR_DEVICE_REMOVED)

Contributor guide

Open the contributing guide

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 by locating the named DxilConf_SM69_Vectorized_Core tests and the x86 WARP pipeline configurations. Compare the 1024-vector cases with the passing 512 cases and inspect how the IsRITP runtime parameter is used. Done means the listed tests no longer hit OOM or device-removed failures in x86 WARP runs.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.