@@ -292,7 +292,6 @@ is supported in all DXIL versions and all stages it is required to be specified
292
292
stages = [VersionedStages<DXIL1_0, [all_stages]>];
293
293
294
294
295
-
296
295
Attribute Specification
297
296
-----------------------
298
297
@@ -314,11 +313,27 @@ Following is an example specification of valid attributes for ``DXIL1_0``.
314
313
315
314
A null list of ``attributes `` signifies no operation attributes.
316
315
316
+ Interpretation of Multiple Constraint Specification
317
+ ---------------------------------------------------
318
+
317
319
Each of the constraints states that the specified overload type, stage or
318
320
attribute records are valid for the predicated DXIL version. Only
319
321
the constraints corresponding to latest minimal DXIL version is applicable.
320
322
Note as in the above example, any overload types, stages or attributes,
321
323
that remain valid in a later DXIL version need to be specified in full.
324
+ For example, consider the following specification of valid overload types:
325
+
326
+ .. code-block ::
327
+
328
+ overloads = [
329
+ VersionedOverloads<DXIL1_0, [halfTy, floatTy]>,
330
+ VersionedOverloads<DXIL1_2, [halfTy, floatTy, doubleTy]>
331
+ ];
332
+
333
+ It specifies that the overload types ``halfTy `` and ``floatTy `` are valid for DXIL
334
+ version 1.0 and later. It also specifies that ``doubleTy `` is additionally supported
335
+ in DXIL version 1.2 and later.
336
+
322
337
This provides the flexibility to specify constraints independent
323
338
of others in the list.
324
339
0 commit comments