Skip to content

Update runtimecore branch#3

Merged
darryl-lynch merged 226 commits into
runtimecorefrom
dar14023/rtc2
Jan 23, 2026
Merged

Update runtimecore branch#3
darryl-lynch merged 226 commits into
runtimecorefrom
dar14023/rtc2

Conversation

@darryl-lynch
Copy link
Copy Markdown

@darryl-lynch darryl-lynch commented Jan 23, 2026

This PR updates the runtimecore branch with the latest version of main

Testing:
3rdparty vTest run on the proposed branch:
https://runtime-rtc.esri.com/view/vTest/job/vtest/job/3rdparty-interface/1885/
RTC vTest run using the archived build of the proposed branch:
https://runtime-rtc.esri.com/view/vTest/job/vtest/job/runtimecore-interface/45305/

s-perron and others added 30 commits June 2, 2025 13:29
…icrosoft#7501)

A small mistake for stores to vk:BufferPointer when storing directly to
the return value of `get()`. We were getting the alignment of the
pointer itself, which is always 8 instead of the type pointed to.

I tested loads, and it does not have the same problem.

Fixes microsoft#7459
Enables work graphs for SPIR-V target, based on AMD_shader_enqueue
extension.
Closes microsoft#5960.
Address-sanitizer reports a leak coming from the dynamic shared library
loading code, though dlopen() is paired with dlclose(). This leak
doesn't manifest on main yet because dxc adds dxcompiler directly to
target_link_libraries (which it shouldn't have to), and dxil is loaded
within that library. A PR to remove dxil loading from dxcompiler exposes
the leak when dxc loads dxil dynamically.

This change adds a suppressions file for LSAN to suppress the leak in
the loader code that happens under call_init. This also changes the
Linux_Clang_Release build to RelWithDebInfo so symbols are present.
This change adds two additional calls to Sema::RequireCompleteType, one
when evaluating unary `sizeof`, which fixes a reported issue with
templates. The second is in the DXR diagnostics where complete type
should be required but not diagnosed because ordering in the compiler is
a bit wonky when diagnosing DXR entry points.

Fixes microsoft#7510

---------

Co-authored-by: Tex Riddell <texr@microsoft.com>
…osoft#7451)

DXC has now been changed to use the internal validator (loaded by
dxcompiler.dll) by default. This PR removes the ability for dxc.exe to
load dxil.dll in preparation for a series of changes to fix external
validation handling.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…osoft#7515)

This avoids other unrelated changes which didn't intend to change this
file from having to update the file just to make clang-format happy.
The node index parameter of `OpAllocateNodePayloadsAMDX` was being set
to the value of the NodeId index argument (which is captured in the
`PayloadNodeBaseIndexAMDX` decoration). Instead, it should be set to the
node's index in the node array, if any, or zero for a single node.
When DXC needs to change the layout of a value, it currently has to
extract each individual scalar, and then reconstruct using the type with
the different layout.

If you have a large array or struct with many member, this generates a
lot of extra code.

Starting in SPIR-V 1.4, the OpCopyLogical instruction is available to do
the reconstruction.

This should help generate less code, which will lead to improved compile
time and maybe smaller binary sizes.

Fixes microsoft#7493
We have had many request to use the `unknown` image format for storage
images (OpTypeImage with sampled=2). We did not want to do that when
targeting earlier versions of Vulkan because it could break existing
code. The capability StorageImageWriteWithoutFormat is not guarenteed to
be available on Vulkan 1.1 devices. This means the application will stop
working.

However, Vulkan 1.3 guarentees that StorageImageWriteWithoutFormat and
StorageImageReadWithoutFormat are available. We can make this change for
VK1.3 and later without breaking existing code.

Fixes microsoft#7484
…r. (microsoft#7532)

This resolves issue microsoft#7531. This is a preliminary step to merging in some
of the Long Vector Execution tests currently sitting in the
staging-sm6.9 branch. There are no functional changes here, but given
that this is a refactor I do not want to add the [NFC] tag to the PR
title.

- Moves functions used by existing exec tests and incoming long vector
tests to a common HlslExecTestUtils.h.
- Updates naming to adhere to LLVM coding standards for newly created
files (even though the functions aren't new)
- Move a few other shared functions to files that make more sense than
ExecutionTest.cpp.
- TableParameterHandler class moved to its own header/cpp files. No
naming updates as nothing else was touched. Can update in a subsequent
PR if it is preferred.
- Add the LLVM coding guidelines preferred include guard to
HlslTestUtils.h to mitigate redefinition issues exposed by this
refactor.
- Updated the D3D shader model 'redefines' in ExecutionTest.cpp as they
were also factored out into a common header. constexpr required because
they are enum values.
- BigObj added to the cmake file as I was hitting issues locally for
this.
…oft#7536)

The root of the problem being addressed here is this line from the
previous version of DxilAnnotateWithVirtualRegister.cpp at (old) line
251 in function GetStructOffset:

```
    auto *pArrayIndex =
        llvm::dyn_cast<llvm::ConstantInt>(pGEP->getOperand(GEPOperandIndex++));
```

When an array is dynamically indexed, this dyn_cast of course returns
nullptr, and this function returns a zero, which eventually caused the
values of all dynamically-indexed array elements in PIX's shader
debugger to be reported as the value of the zeroth element in the array.

The next issue was that stores to an alloca-backed dynamic array weren't
being properly recognized as significant events from PIX debugger's
point of view. PIX adds its own "fake" alloca stores to help tie its
debug output with the debug info that ends up in the PDB, so it's easy
enough to co-opt that machinery to cover stores to "real" allocas, i.e.
function-local array storage. To do so, the "AnnotateStore" function
needs some of the metadata (i.e. PIX instruction number) that is added
during runOnModule here. This necessitated rearranging runOnModule and
putting stores into a vector that we then iterate over at the end of
runOnModule.

Now that indices aren't collapsed into just the zeroth, PIX needs to
know how much storage to allocate for the full array, which is the
motivation for the change in DxilDebugInstrumentation.cpp to return some
metadata that PIX can parse.

DxilDbgValueToDbgDeclare.cpp's changes are just a variable rename to aid
readability.

The rearrangement of runOnModule can induce some allocas to be visited
more than once, so there are changes in DxilPIXVirtualRegisters.cpp to
make sure we don't overwrite an existing alloca ordinal with a new one
(which would confuse previously-established references to that alloca).

file-check tests have been added to validate that 
-the stores to local arrays are being noticed properly.
-the debug pass correctly outputs the metadata that informs PIX about
alloca sizes

The majority of these changes really needs end-to-end testing in PIX,
where I can gather real debug output as generated by the GPU in response
to the instrumentation, then match those results up with PDB data and
finally show HLSL variable contents in the shader debugger, so there are
some tests waiting on the PIX side for when this change makes its way
there.
Legalization and optimization will produce inaccurate NS100 debug info
if there is no DebugScope emitted in the wrapper function. This PR
corrects this oversight and renames the wrapper to "__dxc_setup". This
may cause a stack frame named __dxc_setup to appear in an HLSL debugger,
however, users should be familiar with this type of thing. A C debugger
might show crt0, or a debugger can filter this frame out of the user's
view. This PR addresses
[7341](https://github.com/microsoft/DirectXShaderCompiler/issues//7341)
Bumps [requests](https://github.com/psf/requests) from 2.32.0 to 2.32.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/psf/requests/releases">requests's
releases</a>.</em></p>
<blockquote>
<h2>v2.32.4</h2>
<h2>2.32.4 (2025-06-10)</h2>
<p><strong>Security</strong></p>
<ul>
<li>CVE-2024-47081 Fixed an issue where a maliciously crafted URL and
trusted
environment will retrieve credentials for the wrong hostname/machine
from a
netrc file. (<a
href="https://redirect.github.com/psf/requests/issues/6965">#6965</a>)</li>
</ul>
<p><strong>Improvements</strong></p>
<ul>
<li>Numerous documentation improvements</li>
</ul>
<p><strong>Deprecations</strong></p>
<ul>
<li>Added support for pypy 3.11 for Linux and macOS. (<a
href="https://redirect.github.com/psf/requests/issues/6926">#6926</a>)</li>
<li>Dropped support for pypy 3.9 following its end of support. (<a
href="https://redirect.github.com/psf/requests/issues/6926">#6926</a>)</li>
</ul>
<h2>v2.32.3</h2>
<h2>2.32.3 (2024-05-29)</h2>
<p><strong>Bugfixes</strong></p>
<ul>
<li>Fixed bug breaking the ability to specify custom SSLContexts in
sub-classes of
HTTPAdapter. (<a
href="https://redirect.github.com/psf/requests/issues/6716">#6716</a>)</li>
<li>Fixed issue where Requests started failing to run on Python versions
compiled
without the <code>ssl</code> module. (<a
href="https://redirect.github.com/psf/requests/issues/6724">#6724</a>)</li>
</ul>
<h2>v2.32.2</h2>
<h2>2.32.2 (2024-05-21)</h2>
<p><strong>Deprecations</strong></p>
<ul>
<li>
<p>To provide a more stable migration for custom HTTPAdapters impacted
by the CVE changes in 2.32.0, we've renamed <code>_get_connection</code>
to
a new public API, <code>get_connection_with_tls_context</code>. Existing
custom
HTTPAdapters will need to migrate their code to use this new API.
<code>get_connection</code> is considered deprecated in all versions of
Requests&gt;=2.32.0.</p>
<p>A minimal (2-line) example has been provided in the linked PR to ease
migration, but we strongly urge users to evaluate if their custom
adapter
is subject to the same issue described in CVE-2024-35195. (<a
href="https://redirect.github.com/psf/requests/issues/6710">#6710</a>)</p>
</li>
</ul>
<h2>v2.32.1</h2>
<h2>2.32.1 (2024-05-20)</h2>
<p><strong>Bugfixes</strong></p>
<ul>
<li>Add missing test certs to the sdist distributed on PyPI.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psf/requests/blob/main/HISTORY.md">requests's
changelog</a>.</em></p>
<blockquote>
<h2>2.32.4 (2025-06-10)</h2>
<p><strong>Security</strong></p>
<ul>
<li>CVE-2024-47081 Fixed an issue where a maliciously crafted URL and
trusted
environment will retrieve credentials for the wrong hostname/machine
from a
netrc file.</li>
</ul>
<p><strong>Improvements</strong></p>
<ul>
<li>Numerous documentation improvements</li>
</ul>
<p><strong>Deprecations</strong></p>
<ul>
<li>Added support for pypy 3.11 for Linux and macOS.</li>
<li>Dropped support for pypy 3.9 following its end of support.</li>
</ul>
<h2>2.32.3 (2024-05-29)</h2>
<p><strong>Bugfixes</strong></p>
<ul>
<li>Fixed bug breaking the ability to specify custom SSLContexts in
sub-classes of
HTTPAdapter. (<a
href="https://redirect.github.com/psf/requests/issues/6716">#6716</a>)</li>
<li>Fixed issue where Requests started failing to run on Python versions
compiled
without the <code>ssl</code> module. (<a
href="https://redirect.github.com/psf/requests/issues/6724">#6724</a>)</li>
</ul>
<h2>2.32.2 (2024-05-21)</h2>
<p><strong>Deprecations</strong></p>
<ul>
<li>
<p>To provide a more stable migration for custom HTTPAdapters impacted
by the CVE changes in 2.32.0, we've renamed <code>_get_connection</code>
to
a new public API, <code>get_connection_with_tls_context</code>. Existing
custom
HTTPAdapters will need to migrate their code to use this new API.
<code>get_connection</code> is considered deprecated in all versions of
Requests&gt;=2.32.0.</p>
<p>A minimal (2-line) example has been provided in the linked PR to ease
migration, but we strongly urge users to evaluate if their custom
adapter
is subject to the same issue described in CVE-2024-35195. (<a
href="https://redirect.github.com/psf/requests/issues/6710">#6710</a>)</p>
</li>
</ul>
<h2>2.32.1 (2024-05-20)</h2>
<p><strong>Bugfixes</strong></p>
<ul>
<li>Add missing test certs to the sdist distributed on PyPI.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psf/requests/commit/021dc729f0b71a3030cefdbec7fb57a0e80a6cfd"><code>021dc72</code></a>
Polish up release tooling for last manual release</li>
<li><a
href="https://github.com/psf/requests/commit/821770e822a20a21b207b3907ea83878bda1d396"><code>821770e</code></a>
Bump version and add release notes for v2.32.4</li>
<li><a
href="https://github.com/psf/requests/commit/59f8aa2adf1d3d06bcbf7ce6b13743a1639a5401"><code>59f8aa2</code></a>
Add netrc file search information to authentication documentation (<a
href="https://redirect.github.com/psf/requests/issues/6876">#6876</a>)</li>
<li><a
href="https://github.com/psf/requests/commit/5b4b64c3467fd7a3c03f91ee641aaa348b6bed3b"><code>5b4b64c</code></a>
Add more tests to prevent regression of CVE 2024 47081</li>
<li><a
href="https://github.com/psf/requests/commit/7bc45877a86192af77645e156eb3744f95b47dae"><code>7bc4587</code></a>
Add new test to check netrc auth leak (<a
href="https://redirect.github.com/psf/requests/issues/6962">#6962</a>)</li>
<li><a
href="https://github.com/psf/requests/commit/96ba401c1296ab1dda74a2365ef36d88f7d144ef"><code>96ba401</code></a>
Only use hostname to do netrc lookup instead of netloc</li>
<li><a
href="https://github.com/psf/requests/commit/7341690e842a23cf18ded0abd9229765fa88c4e2"><code>7341690</code></a>
Merge pull request <a
href="https://redirect.github.com/psf/requests/issues/6951">#6951</a>
from tswast/patch-1</li>
<li><a
href="https://github.com/psf/requests/commit/6716d7c9f29df636643fa2489f98890216525cb0"><code>6716d7c</code></a>
remove links</li>
<li><a
href="https://github.com/psf/requests/commit/a7e1c745dc23c18e836febd672416ed0c5d8d8ae"><code>a7e1c74</code></a>
Update docs/conf.py</li>
<li><a
href="https://github.com/psf/requests/commit/c799b8167a13416833ad3b4f3298261a477e826f"><code>c799b81</code></a>
docs: fix dead links to kenreitz.org</li>
<li>Additional commits viewable in <a
href="https://github.com/psf/requests/compare/v2.32.0...v2.32.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=requests&package-manager=pip&previous-version=2.32.0&new-version=2.32.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/DirectXShaderCompiler/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Two instances of the err_integer_literal_too_large diagnostic in HLSL
specific code within Sema::ActOnNumericConstant() had a missing
argument. When these diagnostics were raised this caused an assert in an
assert enabled DXC, and random corruption of the diagnostic text in a
non-assert enabled DXC.

The trivial fix is to supply the required argument.

Fixes microsoft#7425

Co-authored-by: Tim Corringham <tcorring@amd.com>
….cpp (microsoft#7556)

Addresses microsoft#7555 

All but one are simple updates to use std::numeric_limits<T>.
One case converts to use ~ operator and includes a comment with
additional context.
…T> cases (microsoft#7559)

Addresses microsoft#7558. There is also one trivial change to use the ~ operator
included in LEB128.h. My notes on the files were wrong and suggested
that it should use std::numeric_limits<T> but looking at it again using
~0ULL made more sense.
…ft#7572)

I just learned more about the VK feature. In VK1.3, the validation rule
was moved from the existence of the capability to being specific to the
format. It is possible that people will see regressions if their code
runs on a driver that does not support
VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT or
VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT for the format used
by the developer.

Reverts microsoft#7528
Updating SPIRV-{Headers,Tools} for the release.
…omplement instead of negation (microsoft#7567)

Addresses microsoft#7565

A few more instances where we can take advantage of -N being equivalent
to (~N + 1)
…stances (microsoft#7574)

## Fix C4146 warnings: unary minus on unsigned types

Fixes several remaining MSVC C4146 warnings where unary minus was
applied to unsigned integers.
This should be the last PR containing MSVC C4146 warning fixes. I will
remove the disablement of the warning as an error in a subsequent PR
once the other pending PRs are completed.

**Changes:**
- Replace `-(unsigned_value)` with `~unsigned_value + 1` for offset
calculations
- Use `-1LL` instead of `-1ULL` where signed values are intended
- Fix alignment padding calculation to avoid unsigned negation

**Files changed:**
- CoverageMappingGen.cpp, Lexer.cpp, Rewriter.cpp: Use two's complement
for safe unsigned negation in offset calculations
- ItaniumCXXABI.cpp: Use signed literal for ABI-compliant null member
pointer (-1)
- ExprConstant.cpp: Replace `-1ULL` with `~0ULL` for bitmasks
- CodeGenMapTable.cpp: Fix sentinel value generation

All changes are mathematically equivalent and preserve existing behavior
while eliminating compiler warnings.

Addresses microsoft#7573
… of negation (microsoft#7562)

Replaces uses of the unary - operator on signed integers with the
equivalent (sort of, see the details below) expression '~N + 1',
assigning the result to an unsigned type. This avoids undefined behavior
in edge cases and ensures correctness when certain conditions are met.

Details:
This transformation is valid when:

The signed value N is guaranteed to be negative.
The result is stored in an unsigned type that can represent the full
range of the signed type (e.g., uint64_t for int64_t).
The system uses two's complement representation (as is standard on
modern platforms).
While -N is undefined for the minimum representable value (e.g.,
INT64_MIN), the expression ~N + 1 remains well-defined and yields the
correct bit pattern. Assigning this result to an appropriately sized
unsigned type preserves the intended two's complement interpretation
without triggering undefined behavior.

Addresses microsoft#7561.
…ft#7513)

There were two problems with processing the status parameter with the
reword of the buffer load code. The first was that the status was not
being passed down to the load instruction generation for aggregate types
in any shader model version. The second was that the status retrieval
from the resret returned by the raw buffer loads was using the wrong
index for native vectors supported by shader model 6.9.

The status Value was not getting passed all the way down to the load
instruction generation for aggregate types because the refactored helper
constructor would always set it to null. It needs to be explicitly
stated since by that point, the original call instruction it came from
has been lost amidst subsequent GEPs, bitcasts, and/or loads that
aggregate types (arrays and structs) will use on the results of the
original call instruction to get the exact element required.

This changes the constructor to take an optional status parameter
allowing the locations where it might be set to pass it along. In other
cases, it will be null and be appropriately ignored.

Modified aggregate tests to verify this behavior. This required keeping
track of the return of the last load operation involved in a raw buffer
load, which made arrays more complicated. Rather than give them their
own CHECK prefix, I lumped them in with large matrices requiring three
loads. This did require making all the array lengths 3 to match. The
loss in test variability is worth the convenience as there is no known
distinction when it comes to array sizes over 1.

The status retrieval from the ResRet returned by the raw buffer loads
was using the wrong index for native vectors supported by shader model
6.9. Adjusting the index according to the opcode ensures that the index
will be correct.

This also required a change to validation that allows
checkAccessFullyMapped to operate on the second element extracted from a
ResRet where applicable and some corresponding null tolerance in related
code.

Adds status retrieving overloads to the relevant load/store tests for
sm6.9, aggregates, and other loads though the last category exhibited no
issues. At least I got some statuses right!

Fixes microsoft#7508
Update release notes in preparation for release
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.2 to 2.5.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/releases">urllib3's
releases</a>.</em></p>
<blockquote>
<h2>2.5.0</h2>
<h2>🚀 urllib3 is fundraising for HTTP/2 support</h2>
<p><a
href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3
is raising ~$40,000 USD</a> to release HTTP/2 support and ensure
long-term sustainable maintenance of the project after a sharp decline
in financial support. If your company or organization uses Python and
would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and
thousands of other projects <a
href="https://opencollective.com/urllib3">please consider contributing
financially</a> to ensure HTTP/2 support is developed sustainably and
maintained for the long-haul.</p>
<p>Thank you for your support.</p>
<h1>Security issues</h1>
<p>urllib3 2.5.0 fixes two moderate security issues:</p>
<ul>
<li>Pool managers now properly control redirects when
<code>retries</code> is passed — CVE-2025-50181 reported by <a
href="https://github.com/sandumjacob"><code>@​sandumjacob</code></a>
(5.3 Medium, GHSA-pq67-6m6q-mj2v)</li>
<li>Redirects are now controlled by urllib3 in the Node.js runtime —
CVE-2025-50182 (5.3 Medium, GHSA-48p4-8xcf-vxj5)</li>
</ul>
<h1>Features</h1>
<ul>
<li>Added support for the <code>compression.zstd</code> module that is
new in Python 3.14. See <a href="https://peps.python.org/pep-0784/">PEP
784</a> for more information. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3610">#3610</a>)</li>
<li>Added support for version 0.5 of <code>hatch-vcs</code> (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3612">#3612</a>)</li>
</ul>
<h1>Bugfixes</h1>
<ul>
<li>Raised exception for <code>HTTPResponse.shutdown</code> on a
connection already released to the pool. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3581">#3581</a>)</li>
<li>Fixed incorrect <code>CONNECT</code> statement when using an IPv6
proxy with <code>connection_from_host</code>. Previously would not be
wrapped in <code>[]</code>. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3615">#3615</a>)</li>
</ul>
<h2>2.4.0</h2>
<h2>🚀 urllib3 is fundraising for HTTP/2 support</h2>
<p><a
href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3
is raising ~$40,000 USD</a> to release HTTP/2 support and ensure
long-term sustainable maintenance of the project after a sharp decline
in financial support. If your company or organization uses Python and
would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and
thousands of other projects <a
href="https://opencollective.com/urllib3">please consider contributing
financially</a> to ensure HTTP/2 support is developed sustainably and
maintained for the long-haul.</p>
<p>Thank you for your support.</p>
<h1>Features</h1>
<ul>
<li>Applied PEP 639 by specifying the license fields in pyproject.toml.
(<a
href="https://redirect.github.com/urllib3/urllib3/issues/3522">#3522</a>)</li>
<li>Updated exceptions to save and restore more properties during the
pickle/serialization process. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3567">#3567</a>)</li>
<li>Added <code>verify_flags</code> option to
<code>create_urllib3_context</code> with a default of
<code>VERIFY_X509_PARTIAL_CHAIN</code> and
<code>VERIFY_X509_STRICT</code> for Python 3.13+. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3571">#3571</a>)</li>
</ul>
<h1>Bugfixes</h1>
<ul>
<li>Fixed a bug with partial reads of streaming data in Emscripten. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3555">#3555</a>)</li>
</ul>
<h1>Misc</h1>
<ul>
<li>Switched to uv for installing development dependecies. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3550">#3550</a>)</li>
<li>Removed the <code>multiple.intoto.jsonl</code> asset from GitHub
releases. Attestation of release files since v2.3.0 can be found on
PyPI. (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3566">#3566</a>)</li>
</ul>
<h2>2.3.0</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst">urllib3's
changelog</a>.</em></p>
<blockquote>
<h1>2.5.0 (2025-06-18)</h1>
<h2>Features</h2>
<ul>
<li>Added support for the <code>compression.zstd</code> module that is
new in Python 3.14.
See <code>PEP 784 &lt;https://peps.python.org/pep-0784/&gt;</code>_ for
more information.
(<code>[microsoft#3610](urllib3/urllib3#3610)
&lt;https://github.com/urllib3/urllib3/issues/3610&gt;</code>__)</li>
<li>Added support for version 0.5 of <code>hatch-vcs</code>
(<code>[microsoft#3612](urllib3/urllib3#3612)
&lt;https://github.com/urllib3/urllib3/issues/3612&gt;</code>__)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Fixed a security issue where restricting the maximum number of
followed
redirects at the <code>urllib3.PoolManager</code> level via the
<code>retries</code> parameter
did not work.</li>
<li>Made the Node.js runtime respect redirect parameters such as
<code>retries</code>
and <code>redirects</code>.</li>
<li>Raised exception for <code>HTTPResponse.shutdown</code> on a
connection already released to the pool.
(<code>[microsoft#3581](urllib3/urllib3#3581)
&lt;https://github.com/urllib3/urllib3/issues/3581&gt;</code>__)</li>
<li>Fixed incorrect <code>CONNECT</code> statement when using an IPv6
proxy with <code>connection_from_host</code>. Previously would not be
wrapped in <code>[]</code>.
(<code>[microsoft#3615](urllib3/urllib3#3615)
&lt;https://github.com/urllib3/urllib3/issues/3615&gt;</code>__)</li>
</ul>
<h1>2.4.0 (2025-04-10)</h1>
<h2>Features</h2>
<ul>
<li>Applied PEP 639 by specifying the license fields in pyproject.toml.
(<code>[microsoft#3522](urllib3/urllib3#3522)
&lt;https://github.com/urllib3/urllib3/issues/3522&gt;</code>__)</li>
<li>Updated exceptions to save and restore more properties during the
pickle/serialization process.
(<code>[microsoft#3567](urllib3/urllib3#3567)
&lt;https://github.com/urllib3/urllib3/issues/3567&gt;</code>__)</li>
<li>Added <code>verify_flags</code> option to
<code>create_urllib3_context</code> with a default of
<code>VERIFY_X509_PARTIAL_CHAIN</code> and
<code>VERIFY_X509_STRICT</code> for Python 3.13+.
(<code>[microsoft#3571](urllib3/urllib3#3571)
&lt;https://github.com/urllib3/urllib3/issues/3571&gt;</code>__)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Fixed a bug with partial reads of streaming data in Emscripten.
(<code>[microsoft#3555](urllib3/urllib3#3555)
&lt;https://github.com/urllib3/urllib3/issues/3555&gt;</code>__)</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Switched to uv for installing development dependecies.
(<code>[microsoft#3550](urllib3/urllib3#3550)
&lt;https://github.com/urllib3/urllib3/issues/3550&gt;</code>__)</li>
<li>Removed the <code>multiple.intoto.jsonl</code> asset from GitHub
releases. Attestation of release files since v2.3.0 can be found on
PyPI. (<code>[microsoft#3566](urllib3/urllib3#3566)
&lt;https://github.com/urllib3/urllib3/issues/3566&gt;</code>__)</li>
</ul>
<h1>2.3.0 (2024-12-22)</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/urllib3/urllib3/commit/aaab4eccc10c965897540b21e15f11859d0b62e7"><code>aaab4ec</code></a>
Release 2.5.0</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/7eb4a2aafe49a279c29b6d1f0ed0f42e9736194f"><code>7eb4a2a</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/f05b1329126d5be6de501f9d1e3e36738bc08857"><code>f05b132</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/d03fe327a71d09728512217149f269763671f296"><code>d03fe32</code></a>
Fix HTTP tunneling with IPv6 in older Python versions</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/11661e9bb4278e43d081f47a516e287a928c2206"><code>11661e9</code></a>
Bump github/codeql-action from 3.28.0 to 3.29.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3624">#3624</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/6a0ecc6b16fe30f721021b44a81d19615098c71e"><code>6a0ecc6</code></a>
Update v2 migration guide to 2.4.0 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3621">#3621</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/8e32e60d9024c05bc6f7adda08bdf6c539d0b0d4"><code>8e32e60</code></a>
Raise exception for shutdown on a connection already released to the
pool (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3">#3</a>...</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/9996e0fbf90b77083ad3c73737a6c6395703faa9"><code>9996e0f</code></a>
Fix emscripten CI for Chrome 137+ (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3599">#3599</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/4fd1a99a59725faf0efc946ce3b6bc9a194420af"><code>4fd1a99</code></a>
Bump RECENT_DATE (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3617">#3617</a>)</li>
<li><a
href="https://github.com/urllib3/urllib3/commit/c4b5917e911a90c8bf279448df8952a682294135"><code>c4b5917</code></a>
Add support for the new <code>compression.zstd</code> module in Python
3.14 (<a
href="https://redirect.github.com/urllib3/urllib3/issues/3611">#3611</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/urllib3/urllib3/compare/2.2.2...2.5.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=urllib3&package-manager=pip&previous-version=2.2.2&new-version=2.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/DirectXShaderCompiler/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…t#7587)

Addresses microsoft#7584 by removing the warning disable for 4146. Also includes
a few trivial fixes for C4146 across several files that were missed in
previous PRs.
Resolves `C33010` which is currently blocking the release pipeline.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…#7557)

The key change here is the & in DxcDxilPixStorage.cpp. The generated
DXIL packs the bitfields into their 32- or 64-bit-typed Values as
expected, but this code, when trying to figure out which Value a
bitfield lives in, was looking up the unpacked bit offset, so only
fields within the zeroth underlying Value were being reported correctly.

With this change, PIX reports correct bitfield values wherever they
live, including within deeply nested structs.

Unfortunately, the tests had to be in C++ because file-check obv.
doesn't run the APIs that PIX uses to read debug data.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…icrosoft#7549)

**Summary**  
Adds infrastructure for long vector execution tests. This code and
additional test cases were already added to the staging-sm6.9 branch.
This is the second of several PRs to bring these changes into main. That
being said, reviews of this code should treat it as brand new. Resolves
microsoft#7545

**Includes:**
- A new test class `LongVector::OpTest` in `LongVectors.h/cpp`, still
part of the `ExecHLSLTests.dll` binary.
- HLSL source added to `ShaderOpArith.xml` to leverage the existing exec
test framework for shader compilation and execution.
- A new TAEF metadata file `LongVectorOpTable.xml` defining long vector
test cases.
- `LongVectorTestData.h` for statically defined input values, including
`HLSLHalf_t` and `HLSLBool_t`. This avoids duplicating values across
test cases.

**Template Handling**  
To support template instantiation across translation units,
`LongVectors.tpp` contains full template definitions included by
`LongVectors.h`. These were originally required when tests lived in
`ExecutionTests.cpp`. Now that the tests are isolated, the plan is to
move the definitions back into `LongVectors.cpp` after merging the long
vector tests from `staging-sm6.9` to simplify the manual merge.

**Utilities**  
`HlslTestUtils.h` includes minor updates to support the new test
scenarios.
…out (microsoft#7539)

I was trying to debug a Vulkan Storage Buffer-related memory alignment
issue in my application where I was using SPIR-V generated via `dxc`
with `-fvk-use-dx-layout`. In `SPIR-V.rst`, I happened to miss the
paragraph that follows the list of layout rules (removed in this
proposal). That paragraph starts with "To use scalar layout", which
given my use of DirectX layout, I did not think was relevant to me.
However, the next sentence of that paragraph sneakily and indirectly
mentions that `VK_EXT_scalar_block_layout` is required for the DirectX
memory layout as well.

I have proposed explicitly stating the extension requirement when the
relevant layout rules are listed.
Keenuts and others added 20 commits January 7, 2026 10:40
Those flags were documented in the --help, but not the official
documentation.
Bumps [pynacl](https://github.com/pyca/pynacl) from 1.5.0 to 1.6.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyca/pynacl/blob/main/CHANGELOG.rst">pynacl's
changelog</a>.</em></p>
<blockquote>
<h2>1.6.2 (2026-01-01)</h2>
<ul>
<li>Updated <code>libsodium</code> to 1.0.20-stable (2025-12-31 build)
to resolve
<code>CVE-2025-69277</code>.</li>
</ul>
<h2>1.6.1 (2025-11-10)</h2>
<ul>
<li>The <code>MAKE</code> environment variable can now be used to
specify the <code>make</code>
binary that should be used in the build process.</li>
</ul>
<h2>1.6.0 (2025-09-11)</h2>
<ul>
<li><strong>BACKWARDS INCOMPATIBLE:</strong> Removed support for Python
3.6 and 3.7.</li>
<li>Added support for the low level AEAD AES bindings.</li>
<li>Added support for
<code>crypto_core_ed25519_from_uniform</code>.</li>
<li>Update <code>libsodium</code> to 1.0.20-stable (2025-08-27
build).</li>
<li>Added support for free-threaded Python 3.14.</li>
<li>Added support for Windows on ARM wheels.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pyca/pynacl/commit/ecf41f55a3d8f1e10ce89c61c4b4d67f3f4467cf"><code>ecf41f5</code></a>
changelog and version bump for 1.6.2 (<a
href="https://redirect.github.com/pyca/pynacl/issues/923">#923</a>)</li>
<li><a
href="https://github.com/pyca/pynacl/commit/685a5e727772c2df81cfce61fb8768122102fa89"><code>685a5e7</code></a>
Switch to PyPI trusted publishing (<a
href="https://redirect.github.com/pyca/pynacl/issues/925">#925</a>)</li>
<li><a
href="https://github.com/pyca/pynacl/commit/78e0aa32b1a0acdd51e2b3bf394e7cb911fc1e68"><code>78e0aa3</code></a>
missed adding these files as part of the libsodium update (<a
href="https://redirect.github.com/pyca/pynacl/issues/924">#924</a>)</li>
<li><a
href="https://github.com/pyca/pynacl/commit/96314884d88d1089ff5f336dba61d7abbcddbbf7"><code>9631488</code></a>
Bump libsodium to the latest 1.0.20 (<a
href="https://redirect.github.com/pyca/pynacl/issues/922">#922</a>)</li>
<li><a
href="https://github.com/pyca/pynacl/commit/563b25bdedf666e86f0cc2a95321cd23a960260e"><code>563b25b</code></a>
Add script to update vendored libsodium (<a
href="https://redirect.github.com/pyca/pynacl/issues/921">#921</a>)</li>
<li><a
href="https://github.com/pyca/pynacl/commit/d23310561899d1ca4fd4026a646893b2af6b6c21"><code>d233105</code></a>
Include libsodium license in wheels (<a
href="https://redirect.github.com/pyca/pynacl/issues/917">#917</a>)</li>
<li><a
href="https://github.com/pyca/pynacl/commit/cabc3a879d142e62f7503a632e62e706ef5eccbb"><code>cabc3a8</code></a>
Bump dessant/lock-threads from 5 to 6 (<a
href="https://redirect.github.com/pyca/pynacl/issues/914">#914</a>)</li>
<li><a
href="https://github.com/pyca/pynacl/commit/f3596177b3a43a49b211ff2a3f9ea133f1cf8f23"><code>f359617</code></a>
Bump actions/download-artifact from 6.0.0 to 7.0.0 (<a
href="https://redirect.github.com/pyca/pynacl/issues/915">#915</a>)</li>
<li><a
href="https://github.com/pyca/pynacl/commit/fb6e37f76dcf9f93d3f65bb31abdb548816126b6"><code>fb6e37f</code></a>
Bump actions/upload-artifact from 5 to 6 (<a
href="https://redirect.github.com/pyca/pynacl/issues/916">#916</a>)</li>
<li><a
href="https://github.com/pyca/pynacl/commit/526f99278383ffda906bec9d08288191dcbbc3b3"><code>526f992</code></a>
Bump actions/checkout from 6.0.0 to 6.0.1 (<a
href="https://redirect.github.com/pyca/pynacl/issues/911">#911</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pyca/pynacl/compare/1.5.0...1.6.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pynacl&package-manager=pip&previous-version=1.5.0&new-version=1.6.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/DirectXShaderCompiler/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Reverts microsoft#8045

Looks like this is actually breaking the formatting checks - so we have to bypass the rules to merge this!
Implement Group Wave Index and Group Wave Count as proposed by:

https://github.com/microsoft/hlsl-specs/blob/main/proposals/0048-group-wave-index.md

Added two new intrinsics:

- GetGroupWaveIndex - returns the index of the wave in the thread group
- GetGroupWaveCount - returns the number of waves in the thread group

Limited to Shader Model 6.10 and Compute, Mesh, Node and Amp. shaders.

Added basic test.
…soft#8054)

This PR adds a workaround to the hlk long vector derivative tests to
prevent sinking of the derivative call into the conditional. This is a
known bug in DXC that will not be fixed for 6.9 release.
DXC bug tracked via issue microsoft#8001
…e and double. (microsoft#8052)

This PR updates the tests to recognize an additional HLK requirement for
SM6.9 double support as it remains optional for 6.9. 16-bit types,
64-bit integers, and wave ops are required for SM 6.9 so they are
implied via the core requirement.

Also removes the priority '2' set on the wave op tests. P2 tests are
skipped in our automation. These tests were originally being skipped as
WARP did not yet support wave ops with long vectors.

Partially implements microsoft#7608 . The rest of the implementation will be
handled in OS code.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…ent lanes and vector position (microsoft#7991)

This patch modifies the Wave Match test to test modifications in
different lanes and vector
indexes. This is achieved by forcing lanes `0`, `WAVE_SIZE/2` and
`WAVE_SIZE -1`, to modify
the vector at indexes `0`, `WAVE_SIZE/2` or `WAVE_SIZE -1`,
respectively.

---------

Co-authored-by: Joao Saffran <jderezende@microsoft.com>
This PR updates necessary version info for a release. Also adds bullet
to the release notes. Will need to do a better review to get a
collection of changes for the release notes as we didn't manage notes
for changes as they went in this release.

---------

Co-authored-by: Damyan Pepper <damyanp@microsoft.com>
Update testing sign-off poc for MSFT and add blog post checklist item.
…icrosoft#7831)

- DXIL validation tests showing correct uses pass

SM6.10 tracking bug: microsoft#7824

---------

Co-authored-by: Tex Riddell <texr@microsoft.com>
…#8064)

Add the version string section title to the release notes
I missed updating a version string in version.inc. gen_version.py
overwrites this anyways, so it's not a big issue. But best to keep this
clean.
…on (microsoft#8069)

This change updates tests so they don't fail on release branch when DXIL
version is constrained to 1.9.

Also, disable tests for running against downlevel DXIL validator which
don't make sense for that testing mode.
…ry (microsoft#7871)

Add a new HLSL attribute for Compute, Amp and Mesh shaders:
GroupSharedLimit.

This is used to limit the amount of group shared memory a shader is
allowed to statically declare, and validation will fail if the limit is
exceeded.

There is no upper limit on this attribute, and it is expected that
shader writers set the limit as the lowest common denominator for their
target hardware and software use case (typically 48k or 64k for modern
GPUs).

If no attribute is declared the existing 32k limit is used to be
compatible with existing shaders.

Extends the PSV structures to include the selected limit so that runtime
validation can reject the shader if it exceeds the device support.

---------

Co-authored-by: Jack Elliott <jackell@ntdev.microsoft.com>
Co-authored-by: Tex Riddell <texr@microsoft.com>
Implements support for groupshared argument attribute.
Closes microsoft#7969

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…tation (microsoft#8067)

This PR adds the latest point release, based on DXIL version 1.8, to the
test rotation of older validators with which to test new compilers.
Hcttest.cmd needs to be updated in how it handles arguments to
compat-suite, since there may be multiple releases based on the same
DXIL version with which we want to test new compilers against. Instead,
compat-suite takes the date of the released validator.
(E.g, 2025_02_20 and 2025_07_14 are both based on DXIL version 1.8)
Fix the release notes incorrectly modified in microsoft#8013
…t#8075)

Version print didn't reveal details from available version interfaces,
nor did it print file version for DXIL.dll when available.

Changes:
- Clean up code a bit
- No longer skip QI for IDxcVersionInfo2 based on build, since that's
for implementer, not user.
- Print CustomVersionString from IDxcVersionInfo3 if available.
- Remove ifdefs for WIN32 around file/product version calls, because
that's handled in the function.
- Only print product version string if available for dxil.dll, since
that's what it does for dxcompiler.dll.
- Removes old dev build detection (separate commit in PR so it's easy to
reverse if desired)
- Fixes unconditional print of '(dev' as if it's an old dev build on
non-Win32 targets
- Implement IDxcVersionInfo(2,3) in the IDxcCompiler wrapper interface,
so it doesn't look like version 1.0
- Only print version information for external validator when selected
- Otherwise, don't print info for a validator we found that won't be
used
- Fix dxc version parsing in lit.cfg
- Add built external validator testing check-extdxil
- Select the only clang/test subdirs that could even test the external
validator
- Skip LitDXILValidation tests when testing compiler output using
released validators
Unicode.cpp references std::nothrow, but does not directly include new.
We add the include to help with some internal tooling and compilation
work flows.
@duncanthomson
Copy link
Copy Markdown

@darryl-lynch Please could you add a link to a 3rdparty vTest run on the proposed branch, plus a link to an RTC vTest run using the archived build of the proposed branch to demonstrate that the proposed changes will build successfully in the daily 3rdparty build, and that RTC will build and test cleanly with the proposed 3rdparty upgrade?

@darryl-lynch
Copy link
Copy Markdown
Author

@darryl-lynch Please could you add a link to a 3rdparty vTest run on the proposed branch, plus a link to an RTC vTest run using the archived build of the proposed branch to demonstrate that the proposed changes will build successfully in the daily 3rdparty build, and that RTC will build and test cleanly with the proposed 3rdparty upgrade?

I've added the links

@darryl-lynch darryl-lynch merged commit 994303c into runtimecore Jan 23, 2026
@duncanthomson duncanthomson deleted the dar14023/rtc2 branch January 23, 2026 18:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.