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 bounds checking for enqueue operations to the validation layer.
This is accomplished with the various size queries for buffers, images
and USM allocations. Since not all adapters have these queries
implemented the bounds checking isn't entirely comprehensive on all
platforms just yet.
Copy file name to clipboardExpand all lines: scripts/YaML.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -616,13 +616,18 @@ class ur_name_t(Structure):
616
616
-`out` is used for params that are write-only; if the param is a pointer, then the memory being pointed to is also write-only
617
617
-`in,out` is used for params that are both read and write; typically this is used for pointers to other data structures that contain both read and write params
618
618
-`nocheck` is used to specify that no additional validation checks will be generated.
619
-
+`desc` may include one the following annotations: {`"[optional]"`, `"[range(start,end)]"`, `"[release]"`, `"[typename(typeVarName)]"`}
619
+
+`desc` may include one the following annotations: {`"[optional]"`, `"[range(start,end)]"`, `"[release]"`, `"[typename(typeVarName)]"`, `"[bounds(offset,size)]"`}
620
620
-`optional` is used for params that are handles or pointers where it is legal for the value to be `nullptr`
621
621
-`range` is used for params that are array pointers to specify the valid range that the is valid to read
622
622
+`start` and `end` must be an ISO-C standard identifier or literal
623
623
+`start` is inclusive and `end` is exclusive
624
624
-`release` is used for params that are handles or pointers to handles where the function will destroy any backing memory associated with the handle(s)
625
625
-`typename` is used to denote the type enum for params that are opaque pointers to values of tagged data types.
626
+
-`bounds` is used for params that are memory objects or USM allocations. It specifies the range within the memory allocation represented by the param that will be accessed by the operation.
627
+
+`offset` and `size` must be an ISO-C standard identifier or literal
628
+
+ The sum of `offset` and `size` will be compared against the size of the memory allocation represented by the param.
629
+
+ If `offset` and `size` are not both integers they must be of the types `$x_rect_offset` and `$x_rect_region` respectively.
630
+
+ If `bounds` is used the operation must also take a parameter of type `$x_queue_handle_t`
626
631
+`type` must be an ISO-C standard identifier
627
632
+`name` must be a unique ISO-C standard identifier
628
633
- A param may take the following optional scalar field: {`init`, `version`}
0 commit comments