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
Add separate experimental DXIL op table using high OpCode bit (#7947)
Implements:
https://github.com/microsoft/hlsl-specs/blob/main/proposals/0052-experimental-dxil-ops.md
This change adds support for an experimental DXIL operation table, which
provides an independent numeric space from the main OpCode set.
It adds support for indexing into OpCode tables using the high 16-bits
as the table index, and the low 16-bits as the index into the OpCode
table.
While the fundamental change could support more tables for individual
experimental features or extensions, it's currently limited to tables
`0` for `CoreOps` and `0x8000` for `ExperimentalOps` without additional
work to unlock more tables. This maps to the existing opcodes for
`CoreOps` and opcodes with the high bit set for `ExperimentalOps`.
Now, db_dxil_op_table manages dxil op lists, and DXIL ops are built
using table methods.
@@ -3134,10 +3148,11 @@ INSTR.CREATEHANDLEIMMRANGEID Local resource mus
3134
3148
INSTR.DXILSTRUCTUSER Dxil struct types should only be used by ExtractValue.
3135
3149
INSTR.DXILSTRUCTUSEROUTOFBOUND Index out of bound when extract value from dxil struct types.
3136
3150
INSTR.EVALINTERPOLATIONMODE Interpolation mode on %0 used with eval_* instruction must be linear, linear_centroid, linear_noperspective, linear_noperspective_centroid, linear_sample or linear_noperspective_sample.
3151
+
INSTR.EXPDXILOPCODEREQUIRESEXPSM Use of experimental DXILOpCode requires an experimental shader model.
3137
3152
INSTR.EXTRACTVALUE ExtractValue should only be used on dxil struct types and cmpxchg.
3138
3153
INSTR.FAILTORESLOVETGSMPOINTER TGSM pointers must originate from an unambiguous TGSM global variable.
3139
3154
INSTR.HANDLENOTFROMCREATEHANDLE Resource handle should returned by createHandle.
3140
-
INSTR.ILLEGALDXILOPCODE DXILOpCode must be [0..%0]. %1 specified.
3155
+
INSTR.ILLEGALDXILOPCODE DXILOpCode must be valid or a supported experimental opcode.
3141
3156
INSTR.ILLEGALDXILOPFUNCTION '%0' is not a DXILOpFuncition for DXILOpcode '%1'.
3142
3157
INSTR.IMMBIASFORSAMPLEB bias amount for sample_b must be in the range [%0,%1], but %2 was specified as an immediate.
3143
3158
INSTR.INBOUNDSACCESS Access to out-of-bounds memory is disallowed.
0 commit comments