forked from microsoft/DirectXShaderCompiler
-
Notifications
You must be signed in to change notification settings - Fork 0
Pull upstream #9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
AnastaZIuk
merged 93 commits into
Devsh-Graphics-Programming:devshFixes
from
microsoft:main
Jul 24, 2025
Merged
Pull upstream #9
AnastaZIuk
merged 93 commits into
Devsh-Graphics-Programming:devshFixes
from
microsoft:main
Jul 24, 2025
Conversation
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
Test class `ShaderOpTest` had a `HANDLE` not closed after `RunShaderOp` test ran. Created a constructor and destructor for the Test Class to manage the `HANDLE`.
DXC seems to be building inocrrectly with GCC-13 and later, which is causing our pre-merge testing on 24.04 to fail. This will take some time to sort out, so in the meantime I'm reverting to 22.04 on our pipelines.
- Generalize raypayload validation to HitObject::TraceRay|Invoke - Reject non-numeric payload types in [HitObject::]TraceRay|Invoke Specification: https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md Bug: #7234 [SER] Diagnose and validate illegal use of HitObject in unsupported contexts
Lowering for - HitObject::TraceRay - HitObject::Invoke Specification: https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md DXC SER implementation tracker:: #7214
Update the submodules to the latest release candidate for the Vulkan SDK.
Lowering for all HitObject accessors (ex GetAttributes) Specification: https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md DXC SER implementation tracker:: #7214
…ema (#7361) Lowering for `HitObject::GetAttributes<T>()` Specification: https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md DXC SER implementation tracker:: #7214
* HLSL -> DXIL lowering * ast, hlsl->dxil, dxilgen, and ScalarReplAggregatesHLSL tests SER implementation tracker (#7214)
Validate: HitObject_GeometryIndex HitObject_HitKind HitObject_InstanceID HitObject_InstanceIndex HitObject_IsHit HitObject_IsMiss HitObject_IsNop HitObject_LoadLocalRootTableConstant HitObject_ObjectRayDirection HitObject_ObjectRayOrigin HitObject_ObjectToWorld3x4 HitObject_PrimitiveIndex HitObject_RayFlags HitObject_RayTCurrent HitObject_RayTMin HitObject_SetShaderTableIndex HitObject_ShaderTableIndex HitObject_WorldRayDirection HitObject_WorldRayOrigin Rules: * No undef parameters (HitObject, RecordIndex, RootTableOffset) * row/col/component indices are constant and in-bounds * If constant, RootTableOffset % 4 == 0 SER implementation tracker: #7214
Validate: HitObject_MakeMiss Rules: No undef MissShaderIndex or RayFlags SER implementation tracker: #7214
The first parameter of the HLSL_INTRINSIC record is actually a dummy entry for the function name. When builtin member function templates are instantiated, the 'this' ptr is added as the first ParamVarDecl, which has the same index as the first argument in the HLSL_INTRINSIC record. This shifts the parameter names by one for static member functions, as those do not have a 'this' pointer, as in: ``` | | | `-CXXMethodDecl {{[^ ]+}} <<invalid sloc>> <invalid sloc> used MakeMiss 'dx::HitObject (unsigned int, unsigned int, RayDesc)' static | | | |-TemplateArgument type 'dx::HitObject' | | | |-TemplateArgument type 'unsigned int' | | | |-TemplateArgument type 'unsigned int' | | | |-TemplateArgument type 'RayDesc' | | | |-ParmVarDecl {{[^ ]+}} <<invalid sloc>> <invalid sloc> MakeMiss 'unsigned int' | | | |-ParmVarDecl {{[^ ]+}} <<invalid sloc>> <invalid sloc> RayFlags 'unsigned int' | | | |-ParmVarDecl {{[^ ]+}} <<invalid sloc>> <invalid sloc> MissShaderIndex 'RayDesc' ``` The fix is the take the first actual parameter name of the HLSL_INTRINSIC if a static member function template is declared. Closes #7374
…ics (#7290) (#7381) Authored-by: Anupama Chandrasekhar <anupamac@nvidia.com> Implements HLSL: __builtin_MatVecMul __builtin_MatVecMulAdd __builtin_OuterProductAccumulate __builtin_VectorAccumulate Lowered to DXIL: @dx.op.matVecMul @dx.op.matVecMulAdd @dx.op.outerProductAccumulate @dx.op.vectorAccumulate --------- Co-authored-by: Anupama Chandrasekhar <anupamac@nvidia.com> Co-authored-by: Simon Moll <smoll@nvidia.com> (cherry picked from commit 1db8c5b)
The current implementation of OpExecutionModeId assumes that the operands must be OpConstants. However, they could be the id of a spec constant. The first step in allowing OpExecutionModeId is to modify the internal representation of the instruction to hold general spirv instructions. Part of #5960 and #3092.
This PR introduces the linear algebra header file, and places it in a location that is by default included in all HLSL compilation. The builtins in the API aren't yet defined, and depend on the #7290 PR merging first. The tests that have been added have temporary diagnostic messages while 7290 is in progress. They will need to be updated. Open to feedback on better / suggested error messages, or whether there shouldn't be any sema-level validation for these errors. Fixes [#7304](#7304) Cherrypick of #7350 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Validator did not recognize %dx.types.HitObject as an allowed type. This lead to validation failures in -Od compiles where allocas, loads and stores remain in the generated DXIL: ``` dxc.exe -T lib_6_9 -Od \tools\clang\test\CodeGenDXIL\hlsl\intrinsics\maybereorder.hlsl error: validation errors error: Declaration '%dx.types.HitObject = type { i8* }' uses a reserved prefix. ``` Closes #7387
This PR changes the default validation behavior to use the internal validator by default. If no options are specified, the internal validator will be used, and if it fails, then compilation fails. The external validator can still be run but must be explicitly chosen. Specifying internal works just as before. There is plenty of testing and infrastructure that needs to be added to verify this change, but that needs to be added in a separate change. This change is step 1. Addresses #7389
Update version to 1.8.2505
Add upcoming release section to the release notes.
This test that enables spirv codegen needs to be in a directory that has a lit cfg file that specifies that spirv is required, that lack of spirv codegen means the test is unsupported.
…dator (#7409) This change removes the code meant to pass through to DXIL.dll when creating a CLSID_DxcValidator object with DxcCreateInstance. Since the internal validator is now the default, and it will sign shaders, there is no reason to pass through to DXIL.dll when using DxcCreateInstance on DxCompiler.dll. Testing will come with planned work to include the ability to globally override the default validator to external.
…versoin (#7408) Internal testing using older validators reveals some failures on tests that were intended to be run on newer validators. This PR changes the tests to require a minimum validation version to run.
Validate: HitObject_FromRayQuery HitObject_FromRayQueryWithAttrs Rules: No `undef` inputs SER implementation tracker: #7214
Validate: HitObject_Invoke HitObject_TraceRay Rules: No undef params Resource handle must be AS SER implementation tracker: #7214
We will get a crash when use spirv intrinsic to create a constant value. ```fundamental fatal error: generated SPIR-V is invalid: Constant cannot appear in a function declaration %spirvIntrinsicType_42 = OpConstant %spirvIntrinsicType 42 ```
This PR removes a dead fallthrough statement after a switch-statement's case that is terminated by a break; This needs to be removed, because the way linux builds dxc in our internal infrastructure, it errors when a dead fallthrough statement is detected. For context, here is the relevant error: ``` ScalarReplAggregatesHLSL.cpp:2822:9: error: fallthrough annotation in unreachable code [-Werror,-Wimplicit-fallthrough] LLVM_FALLTHROUGH; ^ ... DXC/include/llvm/Support/Compiler.h:224:26: note: expanded from macro 'LLVM_FALLTHROUGH' #define LLVM_FALLTHROUGH [[fallthrough]] ^ 1 error generated. ```
This updates the clang-format-checker action workflow to pull the format checker and tools from `main` instead of from the PR. Note: This PR basically can't be tested pre-merge since the pre-merge check will use the version of the action in `main`.
Several intrinsics that were enabled for native vectors late got their testing removed as it expected scalarized forms. This adds tests for pow, modf, and abs in their native vector intrinsic forms. It removes native vector intrinsics for derivative operations as they require more scalarization removal due to their convergent markers and restores the scalarized testing for them. The 1024 size was removed from longvec-intrinsics as the verbose way that constant vectors are represented in the disassembly made the test take significantly longer.
This PR removes the select-validator option. It is being deprecated, and it wasn't ever officially documented. Fixes #7419
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>
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 #7425 Co-authored-by: Tim Corringham <tcorring@amd.com>
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 #7528
Updating SPIRV-{Headers,Tools} for the release.
…stances (#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 #7573
… of negation (#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 #7561.
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 #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>[#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>[#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>[#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>[#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>[#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>[#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>[#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>[#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>[#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>[#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>
Addresses #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>
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>
…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 #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 (#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.
SPIR-V intrinsics allow us to create spirv basic type and opaque type in HLSL, but these type are object and not allowed in template parameter. ```fundamental error: object 'Int8Type' is not allowed in builtin template parameters /* OpTypeCooperativeMatrixKHR */ 4456, Int8Type, ^ ``` This doesn't make sense to me, and is not convenience to use. This change wants to allow that use those in template parameter.
…that allow it. (#7628) DXC allows user to use decrivative instruction in shader models that do not allow it, but they must be dead code that will be removed. However, when we see a derivative instruction in the SPIR-V backend that is not in a pixel shader we assume it need the DerivativeGroup execution mode, and we fail when we try to add it to a vertex shader. To allow out implementation to match DXIL, we will not assume we can add the execution mode. We will only add it for shader that we know can use is, and skip the other. If the derivative instruction is not removed during optimizations, there will be a validation error. While fixing this, we observed another bug that is fixed at the same time since they are closely related. The TaskNV and TaskEXT shader types do not have the same id, and the SPV_KHR_compute_shader_derivatives does not work with the NV mesh shader extension. That was fixed up. Fixes #7478
This PR merges some more long vector exec test code from staging-sm6.9 into main. Specifically, we bring over the helper classes that define data types for half and bool. Halfs are only available in newer c++ versions so a simple class was needed to implement the proper logic using existing DX helpers that were added for this same reason. The bool class is used as the size of a bool in c++ differs from that in HLSL. Also brings in some tests cases using these data types. Test cases were verified locally by running against WARP. Addresses #7546
Many Vulkan driver allow the SPIR-V to use the `Unknown` image format for storage images and texel buffers. This makes the SPIR-V more flexible, and it useful for developers. However, it can be cumbersome to have to add the `vk::image_format` attribute to all resources. This option allows users to make `Unkown` the default image format for all resource types. Fixes #7484
This change fixes issues with intrinsic lookup caused by not correctly respecting the using declaration(s) that impact unqualified lookups. This probably isn't a perfect solution because I'm sure there's some nuance of unqualified lookups in C++ that I'm not handling, but this does respect scoped using directives and allows us to get things working. Additionally this change disables emitting some "declared here" notes when the source location referred to is invalid. Fixes #7495
…apping register assignments (#7636) The issue: simple vertex shader like so ``` uniform float4x4 gMVP : register(c0); uniform float4 gFoo : register(c5); uniform float4 gBar : register(c5); float4 main(float4 pos : POSITION) : SV_Position { return mul(gMVP, pos * gFoo + gBar); } ``` will result in an internal crash ``` dxc.exe -spirv -T vs_6_2 -E main test.hlsl -Fo test.spirv Internal compiler error: access violation. Attempted to read from address 0x0000000000000000 ``` Due to `LowerTypeVisitor` trying to assign offsets to fields without explicit locations. It'll sort fields first, which will fill the map with the fields first. And since it's using `std::map` - if there's fields with the same `register` number - it'll only insert first, other will be left out, resulting nullptrs in the output vector. We read the content of the vector down the road crashing. My change fixes the crash and tries to output somewhat useful info about compilation fail. I hope this helps you in fixing it properly, or you can take it as it is.
``` Old: T HitObject::GetAttributes<T>() New: void HitObject::GetAttributes(out udt) ``` - remove HitObject::GetAttributes<T> template code path from DeduceTemplateArgumentsForHLSL - cleanup intersection attribute diagnostic code path - adjust GetAttributes calls and expected AST, HLOps in tests (DXIL unaffected) Closes #7534 This is a breaking change. Merge and release must be coordinated with: - hlsl-spec change (microsoft/hlsl-specs#495) - HLK releases (SM6.9 preview tests use old signature) --------- Co-authored-by: Tex Riddell <texr@microsoft.com>
Resolves #7629 Merge the long vector trig op exec tests from staging-sm6.9. Verified locally against WARP: `F:\hlsl.bin\TAEF\x64\te.exe "F:\hlsl.bin\Debug\bin\ExecHLSLTests.dll" /name:LongVector::OpTest::trig* /p:D3D12SDKVersion=1 /p:"ExperimentalShaders=*"`
PR description is empty, please add some valid description |
125a3ce
into
Devsh-Graphics-Programming:devshFixes
2 of 3 checks passed
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.
No description provided.