Update runtimecore branch#3
Merged
Merged
Conversation
…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>=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>=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 /> [](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>
…sing ~ operator (microsoft#7551) Addresses microsoft#7550.
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 <https://peps.python.org/pep-0784/></code>_ for more information. (<code>[microsoft#3610](urllib3/urllib3#3610) <https://github.com/urllib3/urllib3/issues/3610></code>__)</li> <li>Added support for version 0.5 of <code>hatch-vcs</code> (<code>[microsoft#3612](urllib3/urllib3#3612) <https://github.com/urllib3/urllib3/issues/3612></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) <https://github.com/urllib3/urllib3/issues/3581></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) <https://github.com/urllib3/urllib3/issues/3615></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) <https://github.com/urllib3/urllib3/issues/3522></code>__)</li> <li>Updated exceptions to save and restore more properties during the pickle/serialization process. (<code>[microsoft#3567](urllib3/urllib3#3567) <https://github.com/urllib3/urllib3/issues/3567></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) <https://github.com/urllib3/urllib3/issues/3571></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) <https://github.com/urllib3/urllib3/issues/3555></code>__)</li> </ul> <h2>Misc</h2> <ul> <li>Switched to uv for installing development dependecies. (<code>[microsoft#3550](urllib3/urllib3#3550) <https://github.com/urllib3/urllib3/issues/3550></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) <https://github.com/urllib3/urllib3/issues/3566></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 /> [](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.
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 /> [](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.
Julialubiszewska
approved these changes
Jan 23, 2026
|
@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? |
Author
I've added the links |
duncanthomson
approved these changes
Jan 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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/