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 new VUID's to address validation needs of CullPrimitiveEXT. It can
be used as part of a structure or as a array of boolean. Corresponding
VUID changes are also needed for PrimitiveID, Layer, ViewPortIndex,
PrimitiveShadingRateEXT
* Update chapters/interfaces.adoc
Update the validation rules. Your comments look good. I will add it for rest of the builtins
Co-authored-by: Hans-Kristian Arntzen <[email protected]>
* Update VUID's for builtins which are associated with PerPrimitiveEXT storage qualifier
Update the VUID's for builtins Layer, PrimitiveId, PrimitiveShadingRateKHR, ViewPortIndex similar to CullPrimitiveEXT as they can be part of a block or can be individual arrays for MeshEXT execution model
* Apply suggestions from code review
---------
Co-authored-by: Hans-Kristian Arntzen <[email protected]>
Co-authored-by: Daniel Koch <[email protected]>
Copy file name to clipboardexpand all lines: chapters/interfaces.adoc
+47-11
Original file line number
Diff line number
Diff line change
@@ -2201,11 +2201,12 @@ culled, if it is code:false it will not be culled.
2201
2201
The variable decorated with code:CullPrimitiveEXT must: be declared
2202
2202
using the code:Output {StorageClass}
2203
2203
* [[VUID-{refpage}-CullPrimitiveEXT-07036]]
2204
-
The variable decorated with code:CullPrimitiveEXT must: be declared as
2205
-
an array of boolean values
2206
-
* [[VUID-{refpage}-CullPrimitiveEXT-07037]]
2207
-
The size of the array decorated with code:CullPrimitiveEXT must: match
2208
-
the value specified by code:OutputPrimitivesEXT
2204
+
code:CullPrimitiveEXT must: decorate a scalar boolean member of a structure decorated as code:Block, or decorate a variable of type code:OpTypeArray of boolean values.
2205
+
* If code:CullPrimitiveEXT is declared as an array of boolean values, the size of the array
2206
+
must: match the value specified by code:OutputPrimitivesEXT
2207
+
* If code:CullPrimitiveEXT decorates a member of a structure, the variable declaration of the containing code:Block type must: have an array size that matches the value specified by code:OutputPrimitivesEXT
2208
+
* There must be only one declaration of the code:CullPrimitiveEXT associated with a entry
2209
+
point's interface.
2209
2210
* [[VUID-{refpage}-CullPrimitiveEXT-07038]]
2210
2211
The variable decorated with code:CullPrimitiveEXT within the
2211
2212
code:MeshEXT {ExecutionModel} must: also be decorated with the
@@ -3232,11 +3233,19 @@ endif::VK_VERSION_1_2[]
3232
3233
{ExecutionModel} must: be declared using the code:Input {StorageClass}
3233
3234
* [[VUID-{refpage}-Layer-04276]]
3234
3235
The variable decorated with code:Layer must: be declared as a scalar
3235
-
32-bit integer value
3236
+
32-bit integer value for all supported execution models except code:MeshEXT.
3236
3237
* [[VUID-{refpage}-Layer-07039]]
3237
3238
The variable decorated with code:Layer within the code:MeshEXT
3238
3239
{ExecutionModel} must: also be decorated with the code:PerPrimitiveEXT
3239
3240
decoration
3241
+
* code:Layer within the code:MeshEXT {ExecutionModel} must: decorate a scalar
3242
+
32-bit integer member of a structure decorated as code:Block, or decorate a
3243
+
variable of type code:OpTypeArray of scalar 32-bit integer values.
3244
+
* If code:Layer is declared as an array of boolean values, the size of
3245
+
the array must: match the value specified by code:OutputPrimitivesEXT
3246
+
* If code:Layer decorates a member of a structure, the variable declaration
3247
+
of the containing code:Block type must: have an array size that matches
3248
+
the value specified by code:OutputPrimitivesEXT
3240
3249
****
3241
3250
--
3242
3251
@@ -3891,11 +3900,20 @@ SPIR-V has to use code:PrimitiveId.
3891
3900
{StorageClass}
3892
3901
* [[VUID-{refpage}-PrimitiveId-04337]]
3893
3902
The variable decorated with code:PrimitiveId must: be declared as a
3894
-
scalar 32-bit integer value
3903
+
scalar 32-bit integer value for all supported execution models except code:MeshEXT
3895
3904
* [[VUID-{refpage}-PrimitiveId-07040]]
3896
3905
The variable decorated with code:PrimitiveId within the code:MeshEXT
3897
3906
{ExecutionModel} must: also be decorated with the code:PerPrimitiveEXT
3898
3907
decoration
3908
+
* code:PrimitiveId within the code:MeshEXT {ExecutionModel} must: decorate a
3909
+
scalar 32-bit integer member of a structure decorated as code:Block,
3910
+
or decorate a variable of type code:OpTypeArray of 32-bit integer values.
3911
+
* If code:PrimitiveId is declared as an array of 32-bit integer values,
3912
+
within the code:MeshEXT {ExecutionModel}, size of the array must: match
3913
+
the value specified by code:OutputPrimitivesEXT
3914
+
* If code:PrimitiveId decorates a member of a structure, the variable
3915
+
declaration of the containing code:Block type must: have an array size that
3916
+
matches the value specified by code:OutputPrimitivesEXT
3899
3917
****
3900
3918
--
3901
3919
@@ -4098,7 +4116,8 @@ value is undefined: for executions of the shader that take that path.
0 commit comments