Skip to content

Commit a52cce9

Browse files
committed
Merge branch unroll into unroll-devshFixes
2 parents d76c789 + 55112e3 commit a52cce9

350 files changed

Lines changed: 17436 additions & 1916 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/release.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,13 @@ we are confident we can generate builds for the new branch
4444

4545
## Quality Sign Off
4646

47-
- [ ] Microsoft Testing Sign-off (@pow2clk)
47+
- [ ] Microsoft Testing Sign-off (@damyanp)
4848
- [ ] Google Testing Sign-off (@s-perron / @Keenuts)
4949

5050
## Release
5151

5252
- [ ] Tag final release and post binaries
53+
- [ ] Add the new compiler to Compiler Explorer
5354

5455

5556
[^1]: [Ask Mode](https://devblogs.microsoft.com/oldnewthing/20140722-00/?p=433)

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ tools/polly
7070
docs/_build
7171
# TAEF crash logs.
7272
WexLogFileOutput/*
73+
# .cache directory - used by clangd
74+
.cache
7375

7476
#==============================================================================#
7577
# Files created in tree by the Go bindings.

azure-pipelines.yml

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ stages:
1313
- stage: Build
1414
jobs:
1515
- job: Windows
16-
timeoutInMinutes: 165
16+
timeoutInMinutes: 180
1717

1818
pool:
1919
vmImage: windows-2022
@@ -36,7 +36,7 @@ stages:
3636
submodules: true
3737
- script: |
3838
call utils\hct\hctstart.cmd %HLSL_SRC_DIR% %HLSL_BLD_DIR%
39-
call utils\hct\hctbuild.cmd -$(platform) -$(configuration) -show-cmake-log -spirvtest -warp-nuget-version 1.0.16.1
39+
call utils\hct\hctbuild.cmd -vs2022 -$(platform) -$(configuration) -show-cmake-log -spirvtest -warp-nuget-version 1.0.16.1
4040
displayName: 'Building'
4141
- script: |
4242
call utils\hct\hctstart.cmd %HLSL_SRC_DIR% %HLSL_BLD_DIR%
@@ -48,27 +48,37 @@ stages:
4848
displayName: 'DXIL Execution Tests'
4949
- script: |
5050
call utils\hct\hctstart.cmd %HLSL_SRC_DIR% %HLSL_BLD_DIR%
51-
call utils\hct\hcttest.cmd -$(configuration) compat-suite 1.6
51+
call utils\hct\hcttest.cmd -$(configuration) extdxil
52+
displayName: 'External DXIL Validator Tests'
53+
condition: succeededOrFailed()
54+
- script: |
55+
call utils\hct\hctstart.cmd %HLSL_SRC_DIR% %HLSL_BLD_DIR%
56+
call utils\hct\hcttest.cmd -$(configuration) compat-suite v1.6.2112
5257
displayName: 'DXIL Compat Suite Tests (1.6 release)'
5358
condition: succeededOrFailed()
5459
- script: |
5560
call utils\hct\hctstart.cmd %HLSL_SRC_DIR% %HLSL_BLD_DIR%
56-
call utils\hct\hcttest.cmd -$(configuration) compat-suite 1.7
61+
call utils\hct\hcttest.cmd -$(configuration) compat-suite v1.7.2308
5762
displayName: 'DXIL Compat Suite Tests (1.7 release)'
5863
condition: succeededOrFailed()
5964
- script: |
6065
call utils\hct\hctstart.cmd %HLSL_SRC_DIR% %HLSL_BLD_DIR%
61-
call utils\hct\hcttest.cmd -$(configuration) compat-suite 1.8
66+
call utils\hct\hcttest.cmd -$(configuration) compat-suite v1.8.2502
6267
displayName: 'DXIL Compat Suite Tests (1.8 release)'
6368
condition: succeededOrFailed()
69+
- script: |
70+
call utils\hct\hctstart.cmd %HLSL_SRC_DIR% %HLSL_BLD_DIR%
71+
call utils\hct\hcttest.cmd -$(configuration) compat-suite v1.8.2505.1
72+
displayName: 'DXIL Compat Suite Tests (1.8 point release)'
73+
condition: succeededOrFailed()
6474
6575
6676
- job: Nix
6777
timeoutInMinutes: 165
6878

6979
variables:
7080
macOS: macOS-latest
71-
linux: Ubuntu-22.04 # FIXME: #7364, DXC does not build correctly with GCC 13+
81+
linux: Ubuntu-24.04
7282

7383
strategy:
7484
matrix:
@@ -89,13 +99,13 @@ stages:
8999
Linux_Gcc_Release:
90100
image: ${{ variables.linux }}
91101
configuration: Release
92-
CC: gcc-9
93-
CXX: g++-9
102+
CC: gcc
103+
CXX: g++
94104
Linux_Gcc_Debug:
95105
image: ${{ variables.linux }}
96106
configuration: Debug
97-
CC: gcc-9
98-
CXX: g++-9
107+
CC: gcc
108+
CXX: g++
99109
CMAKE_OPTS: -DLLVM_USE_SPLIT_DWARF=On
100110
MacOS_Clang_Release:
101111
image: ${{ variables.macOS }}
@@ -134,11 +144,6 @@ stages:
134144
displayName: 'Installing dependencies'
135145
condition: eq(variables['image'], variables['linux'])
136146
137-
- bash: |
138-
sudo apt-get install g++-9 -y
139-
displayName: 'Installing g++-9'
140-
condition: and(eq(variables['CXX'], 'g++-9'), eq(variables['image'], variables['linux']))
141-
142147
- bash: |
143148
brew update
144149
brew install ninja
@@ -160,6 +165,8 @@ stages:
160165
displayName: 'Smoke tests'
161166
- bash: $(CHECK_ALL_ENV) ninja -C build check-all
162167
displayName: 'DXC tests'
168+
- bash: $(CHECK_ALL_ENV) ninja -C build check-extdxil
169+
displayName: 'External DXIL Validator tests'
163170
- task: PublishTestResults@2
164171
inputs:
165172
testResultsFormat: 'JUnit'

cmake/modules/HandleLLVMOptions.cmake

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ if(NOT LLVM_FORCE_USE_OLD_TOOLCHAIN)
1616
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
1717
message(FATAL_ERROR "Host GCC version must be at least 4.7!")
1818
endif()
19+
# GCC 13 has a known miscompilation bug in -funswitch-loops
20+
# (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109934) that causes
21+
# widespread test failures at -O3. Disable -funswitch-loops for GCC 13.
22+
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.0 AND
23+
CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14.0)
24+
add_compile_options(-fno-unswitch-loops)
25+
message(STATUS "Disabling -funswitch-loops due to GCC 13 miscompilation bug (PR109934)")
26+
endif()
1927
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
2028
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1)
2129
message(FATAL_ERROR "Host Clang version must be at least 3.1!")

docs/CommandGuide/FileCheck.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ OPTIONS
6060
-verify``. With this option FileCheck will verify that input does not contain
6161
warnings not covered by any ``CHECK:`` patterns.
6262

63+
.. option:: -D<VAR=VALUE>
64+
65+
Sets a filecheck variable ``VAR`` with value ``VALUE`` that can be used in
66+
``CHECK:`` lines.
67+
6368
.. option:: -version
6469

6570
Show the version number of this program.

docs/DXIL.rst

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3062,9 +3062,9 @@ Given width, offset:
30623062
30633063
Opcode Table ExperimentalOps, id=32768: Experimental DXIL operations
30643064

3065-
========== ======================================== ==================================================================
3065+
========== ======================================== ===================================================================================================================
30663066
ID Name Description
3067-
========== ======================================== ==================================================================
3067+
========== ======================================== ===================================================================================================================
30683068
2147483648 ExperimentalNop nop does nothing
30693069
2147483649 GetGroupWaveIndex returns the index of the wave in the thread group
30703070
2147483650 GetGroupWaveCount returns the number of waves in the thread group
@@ -3076,7 +3076,31 @@ ID Name Description
30763076
2147483656 RayQuery_CandidateTriangleObjectPosition returns candidate triangle vertices in object space as <9 x float>
30773077
2147483657 RayQuery_CommittedTriangleObjectPosition returns committed triangle vertices in object space as <9 x float>
30783078
2147483658 HitObject_TriangleObjectPosition returns triangle vertices in object space as <9 x float>
3079-
========== ======================================== ==================================================================
3079+
2147483659 LinAlgMatrixMultiplyAccumulate Returns the resulting matrix from multiplying A and B and accumulating into C
3080+
2147483660 LinAlgFillMatrix fills a matrix with a scalar value
3081+
2147483661 LinAlgCopyConvertMatrix Converts and copies the element and use type of the source matrix to the destination matrix with optional transpose
3082+
2147483662 LinAlgMatrixLoadFromDescriptor fills a matrix with data from a [RW]ByteAddressBuffer
3083+
2147483663 LinAlgMatrixLoadFromMemory fills a matrix with data from a groupshared array
3084+
2147483664 LinAlgMatrixLength returns the number of elements stored in thread-local storage on the active thread for the provided matrix
3085+
2147483665 LinAlgMatrixGetCoordinate returns a two element vector containing the column and row of the matrix that the thread-local index corresponds to
3086+
2147483666 LinAlgMatrixGetElement returns the element of the matrix corresponding to the provided thread-local index
3087+
2147483667 LinAlgMatrixSetElement sets the element of the matrix corresponding to the provided thread-local index
3088+
2147483668 LinAlgMatrixStoreToDescriptor stores a matrix to a RWByteAddressBuffer
3089+
2147483669 LinAlgMatrixStoreToMemory stores a matrix to groupshared memory
3090+
2147483670 LinAlgMatrixQueryAccumulatorLayout returns comptime 0 when accumulator matrix are A layout, 1 when B layout
3091+
2147483671 LinAlgMatrixMultiply Returns the resulting matrix from multiplying A and B
3092+
2147483672 LinAlgMatrixAccumulate accumulate A or B matrix into Accumulator matrix following LHS += RHS
3093+
2147483673 LinAlgMatVecMul Multiplies a MxK dimension matrix and a K sized input vector
3094+
2147483674 LinAlgMatVecMulAdd Multiplies a MxK dimension matrix and a K sized input vector then adds a M sized bias vector
3095+
2147483675 LinAlgMatrixAccumulateToDescriptor accumulates a matrix to a RWByteAddressBuffer
3096+
2147483676 LinAlgMatrixAccumulateToMemory accumulates a matrix to groupshared memory
3097+
2147483677 LinAlgMatrixOuterProduct Outer products an M sized vector and a N sized vector producing an MxN matrix
3098+
2147483678 ReservedD1 reserved
3099+
2147483679 ReservedD2 reserved
3100+
2147483680 ReservedD3 reserved
3101+
2147483681 DebugBreak triggers a breakpoint if a debugger is attached
3102+
2147483682 IsDebuggerPresent returns true if a debugger is attached
3103+
========== ======================================== ===================================================================================================================
30803104

30813105

30823106
.. OPCODES-RST:END
@@ -3305,6 +3329,7 @@ SM.CSNOSIGNATURES Compute shaders mu
33053329
SM.DOMAINLOCATIONIDXOOB DomainLocation component index out of bounds for the domain.
33063330
SM.DSINPUTCONTROLPOINTCOUNTRANGE DS input control point count must be [0..%0]. %1 specified.
33073331
SM.DXILVERSION Target shader model requires specific Dxil Version
3332+
SM.EXPLICITTGSMSIZEONENTRY Total Thread Group Shared Memory used by entry must not exceed limit specified by entry attribute.
33083333
SM.GSINSTANCECOUNTRANGE GS instance count must be [1..%0]. %1 specified.
33093334
SM.GSOUTPUTVERTEXCOUNTRANGE GS output vertex count must be [0..%0]. %1 specified.
33103335
SM.GSTOTALOUTPUTVERTEXDATARANGE Declared output vertex count (%0) multiplied by the total number of declared scalar components of output data (%1) equals %2. This value cannot be greater than %3.
@@ -3327,8 +3352,7 @@ SM.INVALIDSAMPLERFEEDBACKTYPE Invalid sampler fe
33273352
SM.INVALIDTEXTUREKINDONUAV TextureCube[Array] resources are not supported with UAVs.
33283353
SM.ISOLINEOUTPUTPRIMITIVEMISMATCH Hull Shader declared with IsoLine Domain must specify output primitive point or line. Triangle_cw or triangle_ccw output are not compatible with the IsoLine Domain.
33293354
SM.ISSPECIALFLOAT 16 bit IsSpecialFloat overloads require Shader Model 6.9 or higher.
3330-
SM.MAXMSSMSIZE Total Thread Group Shared Memory storage is %0, exceeded %1.
3331-
SM.MAXTGSMSIZE Total Thread Group Shared Memory storage is %0, exceeded %1.
3355+
SM.MAXTGSMSIZEONENTRY Total Thread Group Shared Memory used by entry must not exceed maximum for shader model.
33323356
SM.MAXTHEADGROUP Declared Thread Group Count %0 (X*Y*Z) is beyond the valid maximum of %1.
33333357
SM.MESHPSIGROWCOUNT For shader '%0', primitive output signatures are taking up more than %1 rows.
33343358
SM.MESHSHADERINOUTSIZE For shader '%0', payload plus output size is greater than %1.

0 commit comments

Comments
 (0)