You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Disallow structs, arrays, and overwide vectors from typed buffers (microsoft#7130)
These never reliably generated the right results, so they are being
disallowed. The check takes place in SemaHLSL and replaces a few places
that checked for such things in special cases. To facilitate the check,
the definition of the texture bit was expanded to include RW textures.
This is consistent with the description and since the bit was never
actually used before, has no other consequences.
Some code that executed after Sema that either produced errors or
processed resources with these now forbidden types was removed. Most of
this is from CodeGen and HLOperationLower where code was generated or
expanded for load/store operations on such resources.
Additionally moved the check for overlarge elements in typed resources
to enable keeping some tests around that tested these side by side as
well as adding a new one. I changed the nature of the check a bit to
limit the types to four elements and also that they be no larger than 4
32-bit elements. This means that 64-bit elements are limited to two.
While there wasn't an error that caught this before, there was an assert
that fired.
Incidentally fixes an issue with error reporting for modified types
after the first mismatch of that intrinsic is encountered. Because the
insertion code changed them in the temp array and the stored function
type, but printed from the temp array and the later encounters didn't
add the modifiers to the temp array, later errors would incorrectly
leave off the reference. By retrieving the type from the function type,
the reference is always preserved.
This required changing a fair number of tests that relied on this
behavior including removing test cases and entire test files that
existed solely for such tests.
Fixesmicrosoft#7080
Copy file name to clipboardExpand all lines: docs/ReleaseNotes.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,8 @@ The included licenses apply to the following files:
21
21
22
22
Place release notes for the upcoming release below this line and remove this line upon naming this release.
23
23
24
+
- Typed buffers (including ROV buffers) no longer accept types other than vectors and scalars. Any other types will produce descriptive errors. This removes support for appropriately sized matrices and structs. Though it worked in some contexts, code generated from such types was unreliable.
25
+
24
26
### Version 1.8.2502
25
27
26
28
This cumulative release contains numerous bug fixes and stability improvements.
0 commit comments