|   | 25390156 | 2025-08-21T00:13:19 |  | Suppress unsafe buffers on a file-by-file basis in src/ [1 of N]
In this CL, we suppress many files but stop short of actually
enabling the warning by not removing the line from the
unsafe_buffers_paths.txt file. That will happen in a follow-on
CL, along with resolving any stragglers missed here.
This is mostly a manual change so as to familiarize myself with
the kinds of issues faced by the Angle codebase when applying buffer
safety warnings.
-- Re-generate affected hashes.
-- Clang-format applied to all changed files.
-- Add a few missing .reserve() calls to vectors as noticed.
-- Fix some mismatches between file names and header comments.
-- Be more consistent with header comment format (blank lines and
   trailing //-only lines when a filename comment adjoins license
   boilerplate).
Bug: b/436880895
Change-Id: I3bde5cc2059acbe8345057289214f1a26f1c34aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6869022
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> | 
            
              |   | 84a24a1e | 2024-07-02T11:56:25 |  | CL: Implement clone for kernel object
clCloneKernel() can be used to make a shallow copy of a kernel object.
The returned object is an exact copy of the source kernel, with latest
calls to arguments sets applied to the kernel.
Implement a clone version at the front-end with replicating the
`clSetKernelArg` called on the source kernel. The
`clSetKernelArgsSVMPointer` and `clSetKernelExecInfo` are ignored as
they are currently unsupported.
Bug: angleproject:376023087
Change-Id: I2e21931d9ff799e35b153cffe91fd4a2adbbf88d
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5971715
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> | 
            
              |   | 57ce489f | 2024-07-02T10:25:35 |  | CL: Check that arguments are set at enqueue call
On clEnqueueNDRangeKernel, all of the kernel arguments have to be set by
appropriate clSetKernelArg or clSetKernelArgsSVMPointer or
setKernelExecInfo calls. Add a validation check for the same.
For now, only clSetKernelArg are checked as the others are not supported
yet.
Bug: angleproject:42267011
Change-Id: I15be8efab80f475ae6093ab7e1798e7a04182ac0
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5971714
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> | 
            
              |   | ed7c31c7 | 2023-11-29T18:31:43 |  | OpenCL: Replace error-passing APIs to use angle::Result
Part 2 of Issue 8435:
This part replaces existing error handling for all CL APIs that
return CL objects to now use "angle::Result".
Bug: angleproject:8435
Change-Id: I75e41c7cbb06220cabec7cc9f9cb5107a3b6bd6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5075773
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org> | 
            
              |   | a9512a9f | 2023-11-29T14:56:29 |  | OpenCL: Replace error-return APIs to use angle::Result
The motivation of converting existing CL APIs using
"cl_int errorCode" to now use "angle::Result" is for better
interop with internal ANGLE plumbing/abstractions.
To facilitate this, we now make use of a TLS errorCode
object that we set internally and read from entrypoint/stubs
layer so that we can propagate back to user.
Bug: angleproject:8435
Change-Id: I7c2a786019c33c56649be4b6e8b61bc318497bb1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5075772
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> | 
            
              |   | 69562546 | 2021-06-11T19:12:11 |  | CL: Refactor info structs and fix conformance bug
- Remove variable name prefix from Info structs to be more consistent
  with other ANGLE structs.
- Fix CL object validation check with magics, since the Mesa solution
  doesn't work without RTTI.
- Add support for some extensions required by OpenCL 1.1 and for some
  optional extensions.
- Fix more conformance bugs.
Bug: angleproject:6015
Change-Id: I41b1c45d95059a9994f5dc78bf9b74476cc6f2d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2956349
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org> | 
            
              |   | 2c8d9a9a | 2021-06-09T16:09:35 |  | CL: Remaining functions for OpenCL 1.2
Add support for the remaining functions for OpenCL 1.2 for the
front end and pass-through back end.
Also fix several bugs discovered by the conformance tests.
Bug: angleproject:6015
Change-Id: I1dca1c3f4c1d9aea7f0501094c171116ea01381f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954259
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com> | 
            
              |   | 55df3ec1 | 2021-06-08T18:57:15 |  | CL: Add remaining enqueue commands
Add support for remaining OpenCL 1.2 enqueue commands to front end
and pass-through back end.
Bug: angleproject:6015
Change-Id: Iab650e42d51e2105dc826088d3606c56d5cd0fd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944966
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com> | 
            
              |   | 82654e5d | 2021-06-06T15:46:53 |  | CL: Add program build commands
Add program build commands to front end and pass-through back end.
Bug: angleproject:6015
Change-Id: I1175646d35ff050796b718d7f0e269520292b319
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940839
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com> | 
            
              |   | daf18594 | 2021-05-31T12:04:42 |  | CL: Refactor front end entry functions
Move all front end functions that are only called from the OpenCL
entry points to a separate section at the top of the front end
object class bodies, which improves readability.
Bug: angleproject:6001
Change-Id: Id360adbf0c439e4068c379aa4ea1da25e99f7b53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928419
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com> | 
            
              |   | baca10b7 | 2021-05-29T16:26:57 |  | CL: Remove object cache and fix multi-threading
All CL front end objects used to be cached to be able to determine
if an object has been created by the front end to check its validity.
The validity is now checked with the existence of an intrinsic value
(the dispatch table pointer), which is consistent with the patterns
found in Mesa and clvk (though clvk uses a magic value).
This allows the removal of all cached objects.
The cached objects were stored with std::unique_ptr. These are now
gone and all remaining pointers are now custom intrinsic reference
count pointers.
Also remove global lock which causes deadlocks, e.g. when CL API
is called from a separate thread to unlock a blocking call with
a user event. Most of the front end is constant and already
thread-safe. The ref count is also thread-safe now (atomic).
A few remaining locks will follow.
Without the global lock it was now possible to make the API
reentrant, and to remove the workaround with the Khronos ICD
loader to skip ANGLE's OpenCL library.
Bug: angleproject:6001
Change-Id: I7d3b52db9011a02cb7ea9ebdeb6e22c4c702ef5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927395
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com> | 
            
              |   | 9459456b | 2021-05-27T13:43:41 |  | CL: kernel creation for front end & passthrough
Add kernel object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: I6e3fdd2b35d7e73ed56144dc938bf21436d3559f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2922150
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com> | 
            
              |   | 05fb2272 | 2021-04-27T19:31:31 |  | Add support for OpenCL ICD Loader
Bug: angleproject:5908
Change-Id: Idafc0d15b69f9a21f2ab5e48c4c34f0dc0e0ee96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2854598
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com> | 
            
              |   | e25f3b10 | 2021-04-21T21:43:46 |  | Generate empty CL object classes
Bug: angleproject:5886
Change-Id: I01566f40e85bd7f5531536fdc1df42965622a939
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2844969
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com> |