Skip to content

Commit 12131d1

Browse files
committed
Update open questions
1 parent 1f3fcca commit 12131d1

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

proposals/0035-linalg-matrix.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2173,6 +2173,40 @@ RDAT_STRUCT_END()
21732173

21742174
> TBD: Describe ordering and deduplication requirements for these RDAT records.
21752175

2176+
#### Open questions for PSV0 and RDAT
2177+
2178+
Do we need to capture component conversions with CopyConvertMatrix?
2179+
2180+
Should we collect usages inside the required Tier 1 feature set?
2181+
2182+
* It's not necessary, and omitting it reduces some extraneous container size and
2183+
runtime overhead.
2184+
* If we keep it, it will be required by DXIL Validation unless the validation
2185+
approach is made significantly more sophisticated.
2186+
2187+
Should shapes be merged to reduce extra shapes which must be supported based on
2188+
a smaller shape already recorded.
2189+
2190+
* Not for now, as potential for ambiguious cases have not been eliminated.
2191+
2192+
Should overall structure be changed to a single record with a typed union of
2193+
structs, instead of separate records per operation?
2194+
2195+
* Current preference is to keep separate records and tables for each operation,
2196+
as it is simpler to implement and maintain, and allows for standard record
2197+
versioning through extension without issues with unions getting in the way.
2198+
2199+
* Another approach coulld be to follow the RDAT pattern where we have a list of
2200+
parts with IDs that define the record tables, and when a table would be empty,
2201+
the part is simply omitted. We could use the same part IDs as we do for RDAT,
2202+
and even the same record definitions, making this a single extension point in
2203+
PSV0 for RDAT formatted records. The existing string and SemanticIndex buffers
2204+
can be used as the shared RDAT buffers as well, though that wouldn't be
2205+
strictly necessary. The RDAT class could have an InitFromPSV0 method to make
2206+
it easy to load any RDAT formatted data from the PSV0 part. The definitions in
2207+
PSV0 would then become an RDAT offset table and a starting point for the RDAT
2208+
part data.
2209+
21762210
## Appendix 1: HLSL Header
21772211

21782212
[Compiler Explorer](https://godbolt.org/z/5qzYaosf1)

0 commit comments

Comments
 (0)