-
Notifications
You must be signed in to change notification settings - Fork 763
Merge 'release-1.8.2505' to 'staging-sm6.9' #7461
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
damyanp
merged 15 commits into
microsoft:staging-sm6.9
from
tex3d:merge-release-to-staging-sm6.9
May 19, 2025
Merged
Merge 'release-1.8.2505' to 'staging-sm6.9' #7461
damyanp
merged 15 commits into
microsoft:staging-sm6.9
from
tex3d:merge-release-to-staging-sm6.9
May 19, 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
Validates: All resources All instructions using resources Rules: 'reordercoherent' may only be used in SM6.9+ in resource handles and resource declarations. Increment/DecrementCounter unsupported on 'reordercoherent' resources. Create a new DXIL 1.9 variant of the 'CompileWhenOkThenCheckRDAT' container test and restore the old one without 'reordercoherent' (pre-microsoft#7250). The validator now rejects 'reordercoherent' in DXIL 1.3 and accepts from DXIL 1.9+. SER implementation tracker: microsoft#7214 --------- Co-authored-by: Tex Riddell <texr@microsoft.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…icrosoft#7401) Change the definition of the HLSL `dot4add_i8packed` and `dot4add_u8packed` intrinsics in `utils/hct/gen_intrin_main.txt` to simply spell out the return types, rather than saying that their return type is determined by their third argument. This prevents DXC from trying to give those functions declarations like declare i64 @"\01?dot4add_u8packed@hlsl@@YA_JII_J@Z"(i32, i32, i64 signext) #1 which seems to expect a 64-bit third argument and return value. These functions are not generic, and they have only one overload, so there is no need to use interesting `uComponentTypeId` values to get the right effects, and `HLSLExternalSource::MatchArguments` seems to get confused about how to treat argument types that affect the return types. Fixes microsoft#7400.
…productoptimal and matrix stride must be zero (microsoft#7417) Implements the DXIL portion of microsoft/hlsl-specs#494, The HLSL checks will be a part of the HLSL validation checks, did not add it to this PR due to shared infrastructure.
The SV_DispatchGrid DXIL metadata for a node input record was not generated in cases where: - the field with the SV_DispatchGrid semantic was in a nested record - the field with the SV_DispatchGrid semantic was in a record field - the field with the SV_DispatchGrid semantic was inherited from a base record - in any combinations of the above Added FindDispatchGridSemantic() to be used by the AddHLSLNodeRecordTypeInfo() function, and added a test case. Fixes microsoft#6928 --------- Co-authored-by: Tim Corringham <tcorring@amd.com> Co-authored-by: Tex Riddell <texr@microsoft.com>
Built-in DXR struct types RayDesc and BuiltInTriangleIntersectionAttributes were not treated identically to other UDT types. This caused differences in intrinsic codegen when one of these types is returned. This change corrects this difference so these builtin structs are handled in the same way as other UDTs. Fixes microsoft#7450.
The SPIR-V operations require 32-bit floats. Smaller float type can be cast to 32-bits to perform the operation. The FE already emits a warning for 64-bits. Fixes microsoft#7431
…#7454) It is possible to have two struct types in spir-v that are the same except for the decorations. Sometimes we have to reconstruct the value from one type to another. In the case of a vk::SpirvType, we do not know anything about the type, so this should not happen. When trying to reconstuct the value, we should simply return the original value. Fixes microsoft#6963
To be consistent with DXIL, we will start emitting a warning for extenally visible variables that have an initializer. Until now, there were silently ignored. Fixes microsoft#3950
microsoft#7446 This fixes some outdated documentation as well as a compile error when enabling fvk-invert-y on lib files and makes sure that it only gets enabled on SV_POSITION that is used in VS/GS/DS/MS (so PS doesn't get caught in the crossfire). Also tested the dx-position-w one and that one already has correct behavior here. --------- Co-authored-by: NielsbishereAlt <nb@osomi.net>
…osoft#7440) Intrinsics that take UDT arguments need copy-in/copy-out. Other aggregate args are flattened for intrinsic calls. Previously, these operations were intermingled, driven by SROA on alloca/GV values. There were RayDesc arguments that weren't treated consistently, and weren't copied in when necessary, leading to problems. They should be flattened into the intrinsic arguments, but TraceRay calls didn't do this. This change: - flattens RayDesc args for all intrinsics that use them. - separates the copy-in/copy-out generation into a separate operation before SROA. Ideally, this copy-in/copy-out would have been generated by CodeGen based on by-value passing, but that's a deeper intrinsic AST issue potentially. - Updated and added tests. Fixes microsoft#7434.
…ft#7376) - Generalize long vector diagnostics code to HitObjects. - Diagnose unsupported use of HitObject in globals, entry params/returns and various other shader-kind-specific contexts. - Create HitObject variants from the invalid-longvec-decls*.hlsl tests to make sure all cases are covered. Specification: https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md Closes microsoft#7234 [SER] Diagnose and validate illegal use of HitObject in unsupported contexts (discussed offline)
This PR implements checks to validate the linalg builtin functions: __builtin_MatVecMul, __builtin_MatVecMulAdd, __builtin_OuterProductAccumulate and __builtin_VectorAccumulate. This includes: - verify valid types for input and output vectors - const checks for compile-time const parameters - value checks for interpretation and layout (enum) parameters - min/max checks for matrix dimensions - verify input-output vector are the right dimensions for the given matrix (dimM and dimK) : packed and unpacked cases - verify matrix layout, transpose and stride rules - incorrect shader model warning Adds tests for all the above error checks. Implements microsoft#7336
damyanp
approved these changes
May 19, 2025
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.
Merge 'release-1.8.2505' to 'staging-sm6.9'. No conflicts.