Skip to content

Commit 64f61a8

Browse files
committed
resolve merge conflicts
2 parents 45f74fa + 97b5edb commit 64f61a8

File tree

233 files changed

+9433
-2573
lines changed

Some content is hidden

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

233 files changed

+9433
-2573
lines changed

autoconf/config.guess

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -929,6 +929,9 @@ EOF
929929
ia64:Linux:*:*)
930930
echo ${UNAME_MACHINE}-unknown-linux-gnu
931931
exit ;;
932+
loongarch64:Linux:*:*)
933+
echo ${UNAME_MACHINE}-unknown-linux-gnu
934+
exit ;;
932935
m32r*:Linux:*:*)
933936
echo ${UNAME_MACHINE}-unknown-linux-gnu
934937
exit ;;

azure-pipelines.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ stages:
5656

5757
strategy:
5858
matrix:
59-
Linux_Clang_Release:
59+
Linux_Clang_RelWithDebInfo:
6060
image: ${{ variables.linux }}
61-
configuration: Release
61+
configuration: RelWithDebInfo
6262
CC: clang-18
6363
CXX: clang++-18
64-
CMAKE_OPTS: -DLLVM_ENABLE_WERROR=On -DLLVM_USE_SANITIZER='Address;Undefined' -DLLVM_ENABLE_LIBCXX=On -DLLVM_USE_LINKER=lld
65-
CHECK_ALL_ENV: ASAN_OPTIONS=alloc_dealloc_mismatch=0
64+
CMAKE_OPTS: -DLLVM_ENABLE_WERROR=On -DLLVM_USE_SANITIZER='Address;Undefined' -DLLVM_ENABLE_LIBCXX=On -DLLVM_USE_LINKER=lld-18
65+
CHECK_ALL_ENV: ASAN_OPTIONS=alloc_dealloc_mismatch=0 LSAN_OPTIONS=suppressions=$BUILD_SOURCESDIRECTORY/utils/asan/x86_64-pc-linux-gnu.lsan.supp:print_suppressions=0 ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-18 LSAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-18
6666
OS: Linux
6767
Linux_Clang_Debug:
6868
image: ${{ variables.linux }}
@@ -107,6 +107,8 @@ stages:
107107
versionSpec: '3.x'
108108

109109
- bash: |
110+
sudo apt-get update
111+
sudo apt-get upgrade libc6 libc6-dbg
110112
sudo apt-get install ninja-build
111113
wget https://apt.llvm.org/llvm.sh
112114
chmod u+x llvm.sh

cmake/config-ix.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,8 @@ elseif (LLVM_NATIVE_ARCH MATCHES "wasm64")
367367
set(LLVM_NATIVE_ARCH WebAssembly)
368368
elseif (LLVM_NATIVE_ARCH MATCHES "riscv64")
369369
set(LLVM_NATIVE_ARCH RISCV)
370+
elseif (LLVM_NATIVE_ARCH MATCHES "loongarch64")
371+
set(LLVM_NATIVE_ARCH LoongArch)
370372
elseif (LLVM_NATIVE_ARCH MATCHES "e2k")
371373
set(LLVM_NATIVE_ARCH E2K)
372374
else ()

cmake/modules/HandleLLVMOptions.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,6 @@ if( MSVC )
301301

302302
set(msvc_warning_flags
303303
# Disabled warnings.
304-
-wd4146 # Suppress 'unary minus operator applied to unsigned type, result still unsigned'
305304
-wd4180 # Suppress 'qualifier applied to function type has no meaning; ignored'
306305
-wd4244 # Suppress ''argument' : conversion from 'type1' to 'type2', possible loss of data'
307306
-wd4258 # Suppress ''var' : definition from the for loop is ignored; the definition from the enclosing scope is used'

docs/ReleaseNotes.md

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,48 @@ The included licenses apply to the following files:
1919

2020
### Upcoming Release
2121

22-
Place release notes for the upcoming release below this line and remove this line upon naming this release.
22+
- Fix regression: [#7510](https://github.com/microsoft/DirectXShaderCompiler/issues/7510) crash when calling `sizeof` on templated type.
23+
- Fix regression: [#7508](https://github.com/microsoft/DirectXShaderCompiler/issues/7508) crash when calling `Load` with `status`.
24+
- Header file `dxcpix.h` was added to the release package.
2325

2426
### Version 1.8.2505
2527

28+
#### Potentially breaking changes
29+
2630
- Typed buffers (including ROV buffers) no longer accept types other than vectors and scalars. Any other types will produce descriptive errors. This removes support for appropriately sized matrices and structs. Though it worked in some contexts, code generated from such types was unreliable.
27-
- By default, the internal validator will be used instead of searching externally for an existing DXIL.dll.
31+
- Load and Store operations have been refactored as a consequence. Behavior should be identical, please file issues if discrepancies are observed.
32+
- The compiler will now always use the internal validator instead of searching for an external DXIL.dll. The (hidden) `-select-validator` option has been removed.
33+
34+
#### Notable SPIR-V updates
35+
36+
- Fix unnecessary Int64 requirement when loading Float64
37+
- Added vk::BufferPointer, see [proposal](https://github.com/microsoft/hlsl-specs/blob/main/proposals/0010-vk-buffer-ref.md) for more details.
38+
- Implement QuadAny and QuadAll (#7266)
39+
- Fix -fvk-invert-y (#7447)
40+
41+
#### Shader Model 6.9 Preview
42+
43+
You can now compile shaders to SM 6.9, but this is a preview, so shader hashes will be set to the PREVIEW_BYPASS pattern.
44+
SM 6.9 shaders will only work with AgilitySDK 1.717.0-preview, a supported preview driver, and use of experimental shader models in developer mode.
45+
Preview shaders will not be compatible with the SM 6.9 release, or likely even later versions of the SM 6.9 preview.
46+
47+
SM 6.9 Preview Additions:
48+
49+
- Long vectors are allowed in HLSL when targeting shader model 6.9. Vectors up to 1024 elements in length can be loaded from/stored to raw buffers and used in elementwise operations. See the [long vector proposal](https://github.com/microsoft/hlsl-specs/blob/main/proposals/0026-hlsl-long-vector-type.md) for more details.
50+
- HLSL Vectors are still limited to a maximum of 4 elements when used in certain contexts:
51+
- entry function inputs/outputs
52+
- parameter, payload, attribute, and node record types for mesh, raytracing, and node shaders
53+
- constant buffers (cbuffer), texture buffers (tbuffer), textures and typed buffers
54+
- Note: some HLSL elementwise intrinsics do not yet support long vectors in this preview
55+
- Native vectors of up to 1024 elements are now present in DXIL. This includes vector llvm instructions, load/store, and various elementwise DXIL operations. This may result in smaller DXIL and potentially other performance improvements. See the [dxil vectors proposal](https://github.com/microsoft/hlsl-specs/blob/main/proposals/0030-dxil-vectors.md) for more details.
56+
- Cooperative Vector operations, a subset of Linear Algebra (LinAlg). See the [cooperative vectors proposal](https://github.com/microsoft/hlsl-specs/blob/main/proposals/0029-cooperative-vector.md) and the [HLSL header based API proposal](https://github.com/microsoft/hlsl-specs/blob/main/proposals/0031-hlsl-vector-matrix-operations.md) for more details.
57+
- New built-in operations are added for multiplying long vectors with a matrix in a ByteAddressBuffer, optionally with accumulation and bias data, as well as outer product and vector accumulate operations.
58+
- An HLSL header shipped with this release provides a more convenient API for using these built-in operations.
59+
- Support for [Opacity Micromaps](https://github.com/microsoft/hlsl-specs/blob/main/proposals/0024-opacity-micromaps.md) in DXR shaders as well as for RayQuery.
60+
- Unlocks DXR performance improvements using triangle sub-divisions for fast hit/miss detection to reduce the need for anyhit invocations.
61+
- Support for [Shader Execution Reordering](https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md) in DXR.
62+
- Introduces `MaybeReorderThread()` to explicitly specify where and how shader execution coherence can be improved. `MaybeReorderThread()` can be used in raygeneration shaders.
63+
- `HitObject` decouples traversal, intersection testing and anyhit shading from closesthit and miss shading for more control and better reordering opportunities. `HitObject` can be used in raygeneration, closesthit and miss shaders.
2864

2965
### Version 1.8.2502
3066

docs/SPIR-V.rst

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -896,6 +896,13 @@ are translated into SPIR-V ``OpTypeImage``, with parameters:
896896
The meanings of the headers in the above table is explained in ``OpTypeImage``
897897
of the SPIR-V spec.
898898

899+
For storage images (e.g. ``RWTexture2D<T>``) and texel buffers (e.g. ``RWBuffer<T>``),
900+
the image format is typically inferred from the data type ``T``. However, the
901+
``-fspv-use-unknown-image-format`` command-line option can be used to change
902+
this behavior. When this option is active, the default format for these
903+
resources becomes ``Unknown`` if not otherwise specified by the
904+
``[[vk::image_format]]`` attribute.
905+
899906
Vulkan specific Image Formats
900907
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
901908

@@ -1012,17 +1019,18 @@ right now:
10121019
2. DirectX memory layout rules for uniform buffers and storage buffers:
10131020
they allow packing data on the application side that can be shared with
10141021
DirectX. They can be enabled by ``-fvk-use-dx-layout``.
1022+
1023+
NOTE: This requires ``VK_EXT_scalar_block_layout`` to be enabled on the
1024+
application side.
10151025
3. Strict OpenGL ``std140`` for uniform buffers and strict OpenGL ``std430``
10161026
for storage buffers: they allow packing data on the application side that
10171027
can be shared with OpenGL. They can be enabled by ``-fvk-use-gl-layout``.
10181028
4. Scalar layout rules introduced via `VK_EXT_scalar_block_layout`, which
10191029
basically aligns all aggregrate types according to their elements'
10201030
natural alignment. They can be enabled by ``-fvk-use-scalar-layout``.
1021-
1022-
To use scalar layout, the application side need to request
1023-
``VK_EXT_scalar_block_layout``. This is also true for using DirectX memory
1024-
layout since there is no dedicated DirectX layout extension for Vulkan
1025-
(at least for now). So we must request something more permissive.
1031+
1032+
NOTE: This requires ``VK_EXT_scalar_block_layout`` to be enabled on the
1033+
application side.
10261034

10271035
In the above, "vector-relaxed OpenGL ``std140``/``std430``" rules mean OpenGL
10281036
``std140``/``std430`` rules with the following modification for vector type
@@ -1032,7 +1040,7 @@ alignment:
10321040
2. If the above causes an `improper straddle <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#interfaces-resources-layout>`_,
10331041
the alignment will be set to 16 bytes.
10341042

1035-
As an exmaple, for the following HLSL definition:
1043+
As an example, for the following HLSL definition:
10361044

10371045
.. code:: hlsl
10381046
@@ -3967,7 +3975,7 @@ RayQuery Mapping to SPIR-V
39673975
+---------------------------------------------------+-------------------------------------------------------------------------+
39683976
|``.WorldRayDirection`` | ``OpRayQueryGetWorldRayDirectionKHR`` |
39693977
+---------------------------------------------------+-------------------------------------------------------------------------+
3970-
|``.WorldRayOrigin` | ``OpRayQueryGetWorldRayOriginKHR`` |
3978+
|``.WorldRayOrigin`` | ``OpRayQueryGetWorldRayOriginKHR`` |
39713979
+---------------------------------------------------+-------------------------------------------------------------------------+
39723980

39733981
Shader Model 6.0+ Wave Intrinsics

external/SPIRV-Headers

Submodule SPIRV-Headers updated 95 files

external/SPIRV-Tools

Submodule SPIRV-Tools updated 165 files

include/dxc/DXIL/DxilConstants.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ const float kMaxMipLodBias = 15.99f;
154154
const float kMinMipLodBias = -16.0f;
155155

156156
const unsigned kResRetStatusIndex = 4;
157+
const unsigned kVecResRetStatusIndex = 1;
157158

158159
/* <py::lines('OLOAD_DIMS-TEXT')>hctdb_instrhelp.get_max_oload_dims()</py>*/
159160
// OLOAD_DIMS-TEXT:BEGIN

include/dxc/DxilContainer/DxcContainerBuilder.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@ class DxcContainerBuilder : public IDxcContainerBuilder {
4545
return DoBasicQueryInterface<IDxcContainerBuilder>(this, riid, ppvObject);
4646
}
4747

48-
void Init(const char *warning = nullptr) {
49-
m_warning = warning;
48+
void Init() {
5049
m_RequireValidation = false;
5150
m_HasPrivateData = false;
5251
m_HashFunction = nullptr;
@@ -67,7 +66,6 @@ class DxcContainerBuilder : public IDxcContainerBuilder {
6766

6867
PartList m_parts;
6968
CComPtr<IDxcBlob> m_pContainer;
70-
const char *m_warning;
7169
bool m_RequireValidation;
7270
bool m_HasPrivateData;
7371
// Function to compute hash when valid dxil container is built

0 commit comments

Comments
 (0)