@@ -474,6 +474,20 @@ inline bool IsFeedbackTexture(DXIL::ResourceKind ResourceKind) {
474
474
// OPCODE-ENUM:BEGIN
475
475
// Enumeration for operations specified by DXIL
476
476
enum class OpCode : unsigned {
477
+ //
478
+ Reserved0 = 226 , // Reserved
479
+ Reserved1 = 227 , // Reserved
480
+ Reserved10 = 236 , // Reserved
481
+ Reserved11 = 237 , // Reserved
482
+ Reserved2 = 228 , // Reserved
483
+ Reserved3 = 229 , // Reserved
484
+ Reserved4 = 230 , // Reserved
485
+ Reserved5 = 231 , // Reserved
486
+ Reserved6 = 232 , // Reserved
487
+ Reserved7 = 233 , // Reserved
488
+ Reserved8 = 234 , // Reserved
489
+ Reserved9 = 235 , // Reserved
490
+
477
491
// Amplification shader instructions
478
492
DispatchMesh = 173 , // Amplification shader intrinsic DispatchMesh
479
493
@@ -946,27 +960,6 @@ enum class OpCode : unsigned {
946
960
WaveReadLaneAt = 117 , // returns the value from the specified lane
947
961
WaveReadLaneFirst = 118 , // returns the value from the first lane
948
962
949
- // WaveMatrix
950
- WaveMatrix_Add = 237 , // Element-wise accumulate, or broadcast add of fragment
951
- // into accumulator
952
- WaveMatrix_Annotate =
953
- 226 , // Annotate a wave matrix pointer with the type information
954
- WaveMatrix_Depth =
955
- 227 , // Returns depth (K) value for matrix of specified type
956
- WaveMatrix_Fill = 228 , // Fill wave matrix with scalar value
957
- WaveMatrix_LoadGroupShared = 230 , // Load wave matrix from group shared array
958
- WaveMatrix_LoadRawBuf = 229 , // Load wave matrix from raw buffer
959
- WaveMatrix_Multiply =
960
- 233 , // Mutiply left and right wave matrix and store in accumulator
961
- WaveMatrix_MultiplyAccumulate =
962
- 234 , // Mutiply left and right wave matrix and accumulate into accumulator
963
- WaveMatrix_ScalarOp =
964
- 235 , // Perform scalar operation on each element of wave matrix
965
- WaveMatrix_StoreGroupShared = 232 , // Store wave matrix to group shared array
966
- WaveMatrix_StoreRawBuf = 231 , // Store wave matrix to raw buffer
967
- WaveMatrix_SumAccumulate = 236 , // Sum rows or columns of an input matrix into
968
- // an existing accumulator fragment matrix
969
-
970
963
// Work Graph intrinsics
971
964
FinishedCrossGroupSharing = 243 , // returns true if the current thread group
972
965
// is the last to access the input
@@ -1003,6 +996,9 @@ enum class OpCode : unsigned {
1003
996
// OPCODECLASS-ENUM:BEGIN
1004
997
// Groups for DXIL operations with equivalent function templates
1005
998
enum class OpCodeClass : unsigned {
999
+ //
1000
+ Reserved,
1001
+
1006
1002
// Amplification shader instructions
1007
1003
DispatchMesh,
1008
1004
@@ -1278,18 +1274,6 @@ enum class OpCodeClass : unsigned {
1278
1274
WaveReadLaneAt,
1279
1275
WaveReadLaneFirst,
1280
1276
1281
- // WaveMatrix
1282
- WaveMatrix_Accumulate,
1283
- WaveMatrix_Annotate,
1284
- WaveMatrix_Depth,
1285
- WaveMatrix_Fill,
1286
- WaveMatrix_LoadGroupShared,
1287
- WaveMatrix_LoadRawBuf,
1288
- WaveMatrix_Multiply,
1289
- WaveMatrix_ScalarOp,
1290
- WaveMatrix_StoreGroupShared,
1291
- WaveMatrix_StoreRawBuf,
1292
-
1293
1277
// Work Graph intrinsics
1294
1278
FinishedCrossGroupSharing,
1295
1279
GetInputRecordCount,
@@ -1306,9 +1290,9 @@ enum class OpCodeClass : unsigned {
1306
1290
NumOpClasses_Dxil_1_5 = 143 ,
1307
1291
NumOpClasses_Dxil_1_6 = 149 ,
1308
1292
NumOpClasses_Dxil_1_7 = 153 ,
1309
- NumOpClasses_Dxil_1_8 = 183 ,
1293
+ NumOpClasses_Dxil_1_8 = 174 ,
1310
1294
1311
- NumOpClasses = 183 // exclusive last value of enumeration
1295
+ NumOpClasses = 174 // exclusive last value of enumeration
1312
1296
};
1313
1297
// OPCODECLASS-ENUM:END
1314
1298
@@ -1817,29 +1801,6 @@ enum class SamplerFeedbackType : uint8_t {
1817
1801
LastEntry = 2
1818
1802
};
1819
1803
1820
- enum class WaveMatrixKind : uint8_t {
1821
- Left = 0 ,
1822
- Right = 1 ,
1823
- LeftColAcc = 2 ,
1824
- RightRowAcc = 3 ,
1825
- Accumulator = 4 ,
1826
- NumKinds = 5 ,
1827
- MaskSide = 1 ,
1828
- MaskClass = 6 , // 0 = Left/Right, 2 = Fragment, 4 = Accumulator
1829
- };
1830
-
1831
- /* <py::lines('WAVEMATRIXSCALAROPCODE-ENUM')>hctdb_instrhelp.get_enum_decl("WaveMatrixScalarOpCode")</py>*/
1832
- // WAVEMATRIXSCALAROPCODE-ENUM:BEGIN
1833
- // Operation for WaveMatrix_ScalarOp
1834
- enum class WaveMatrixScalarOpCode : unsigned {
1835
- Add = 0 ,
1836
- Divide = 3 ,
1837
- Invalid = 4 ,
1838
- Multiply = 2 ,
1839
- Subtract = 1 ,
1840
- };
1841
- // WAVEMATRIXSCALAROPCODE-ENUM:END
1842
-
1843
1804
// Corresponds to MEMORY_TYPE_FLAG enums in HLSL
1844
1805
enum class MemoryTypeFlag : uint32_t {
1845
1806
UavMemory = 0x00000001 , // UAV_MEMORY
@@ -1922,8 +1883,7 @@ const uint64_t ShaderFeatureInfo_SampleCmpGradientOrBias = 0x80000000;
1922
1883
const uint64_t ShaderFeatureInfo_ExtendedCommandInfo = 0x100000000 ;
1923
1884
1924
1885
// Experimental SM 6.9+ - Reserved, not yet supported.
1925
- // WaveMMA slots in between two SM 6.6 feature bits.
1926
- const uint64_t ShaderFeatureInfo_WaveMMA = 0x8000000 ;
1886
+ const uint64_t ShaderFeatureInfo_Reserved = 0x8000000 ;
1927
1887
1928
1888
// Maximum count without rolling over into another 64-bit field is 40,
1929
1889
// so the last flag we can use for a feature requirement is: 0x8000000000
0 commit comments