|
3772d47e
|
2024-12-11T00:25:37
|
|
CL/Vulkan: Allocate descriptor sets under lock
The descriptor pool must be externally synchronized as per the vulkan
spec, as such acquire a lock when allocating descriptor sets from it.
Bug: angleproject:383999367
Change-Id: I98448770681ad39dae0dc7e413e28ec7dfa89f87
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6099129
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9e1ce8c1
|
2024-08-30T20:11:06
|
|
CL/VK: Add readBufRect staging/transfer routine
Adding enqueueReadBufferRect staging/transfer
code/routine for the non-blocking conditions.
Allows us to correctly stage writes in a batch
of cmds with multiple enqueueReadBufferRect cmds.
Bug: angleproject:42267074
Change-Id: I46b7b9f4e1fbcd0314a7700525935ed2743b1587
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6068287
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9c566e86
|
2024-12-11T17:42:16
|
|
CL/VK: Fix event blocking for enqueueReadImage/enqueueMapImage
There were issues with enqueueReadImage and enqueueMapImage
getting blocked when one of the waitEvents is a user event.
This change fixes the issue by staging a transfer routine.
Additionally, this change removes the redundant struct BufferBox.
Bug: angleproject:381199196
Change-Id: Id0c09d9930b36b79229f5e2367f8132e9e5e476e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056426
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bde4d143
|
2024-09-27T14:08:43
|
|
CL/Vulkan: Setup a dispatch loop per commandqueue
Commands submitted to renderer need clean up ops post completion. Setup
a background thread per commandqueue that waits on the command
completion and performs the post completion operations.
Updated test suite and `angle.json` was autogenerated with
`scripts/run_code_generation.py`.
Bug: angleproject:375231041
Change-Id: I82b4211ee6e229c679ef31897fc63d61fa904bb5
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5960590
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e1fd42db
|
2024-09-02T12:53:22
|
|
CL/Vulkan: Add parent dependencies and image layout transitions
In the case of memory objects derived from parent object, the
dependencies need to be set for parent objects as well. Setting up those
dependencies.
In the case of images, there might be a layout transition needed when
using them. Adding an appropriate barrier command to do layout
transitions.
Also, refactored all the common code of setting up dependencies in a
utility function.
Bug: angleproject:380188569
Change-Id: Ia46f8a7fe647bf38c86f1ea28f99d44b0416c334
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6005390
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
743dd7bf
|
2024-11-06T12:29:36
|
|
CL: Add some event/memory helper functions
Add the following helper functions on the CL frontend
- check for user event
- check for CL image/buffer types
And on the VK backend
- For CLBufferVk/CLImageVk much of the state is encoded in the
front-end object. Add utility functions to get handle to them.
- check for user event dependency in commandqueue
Bug: angleproject:378103912
Change-Id: Ie76b44445ce2db3b5a49ccc6afe02e75c474875d
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004683
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
267a3daf
|
2024-11-05T19:51:58
|
|
CL/Vulkan: Use enums for cmd exec status instead of bools
Setup the `createEvent()` interface to take the initial state of the
event using an enum, instead of boolean for better readability.
Bug: angleproject:377997556
Change-Id: Ib5a23cf2034e61e90b345bb432af59d96338b707
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004063
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
de287909
|
2024-08-30T18:38:40
|
|
CL/VK: Generalize host transfer sync utility
Rework host transfer sync utility to handle
multiple non-blocking enqueue transfer ops
for buffer/image reads.
Bug: angleproject:377545840
Change-Id: Ic382162ded15cb15c900baf724e02592bfd846c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6001611
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
7c99c225
|
2024-04-03T01:48:57
|
|
CL/Vulkan: Implement clEnqueue APIs involving images
Review enables the functionality of:
- clEnqueueReadImage
- clEnqueueWriteImage
- clEnqueueCopyImage
- clEnqueueMapImage
- clEnqueueCopyImageToBuffer
- clEnqueueCopyBufferToImage
Tests-Passing: OCLCTS.test_basic imagecopy, imagerandomcopy,
OCLCTS.test_profiling copy_array_to_image
Bug: angleproject:42266936
Change-Id: Ifd4ccd0a9e16bac11dbff74d4634d9ca4c5b4284
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5796530
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
|
|
d9f8fba8
|
2024-09-27T15:56:36
|
|
CL/Vulkan: Fix event queue serials
Some of the events are finished at call site, dont set queue serials for
them.
Bug: angleproject:372157567
Change-Id: I4e0d568b76959be96bc7565bae7cdb5d4549619a
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916155
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f9709279
|
2024-09-20T16:02:56
|
|
CL/Vulkan: Add support for printf builtin processing
The support for printf builtin in clspv enabled through the SPIR-V
non-semantic clspv reflection instructions - PrintfInfo and
PrintfBufferStorageBuffer [1]. The printf buffer is setup with a
separate descriptor layout and the pipeline layout is updated
accordingly.
Also, printf is enabled as default option now for clspv.
[1]: https://github.com/KhronosGroup/SPIRV-Registry/blob/master/nonsemantic/NonSemantic.ClspvReflection.html
Bug: angleproject:369724757
Change-Id: I20b245eb0fea69941bd1aeb42534f8b729ec17e8
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893958
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
741e5355
|
2024-06-07T16:39:53
|
|
CL/Vulkan: Add missing PushConstantNumWorkgroups
Adding support for:
NonSemanticClspvReflectionPushConstantNumWorkgroups
Bug: angleproject:366412385
Change-Id: Id4cfc1ee456d3a7f6d058f3f4a6a580381b2d471
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860308
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5b4517ec
|
2024-02-02T14:04:29
|
|
CL/VK: Add helper for inserting barriers
Adding a helper function to insert execution and memory barriers when
resource access commands are recorded into the command buffer in
CLCommandQueueVk.
An example of a copy buffer command with src and dst
```
set access.readBuffer <- src
set access.writeBuffer <- dst
insert barriers - onResourceAccess(access)
add copy command - commandBuffer->copyBuffer()
```
Bug: angleproject:42267073
Change-Id: I61d8064fd015a4bf3dab018cbb83d147915ed627
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5409249
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
cc50c75b
|
2024-04-19T16:40:26
|
|
CL/Vulkan: Fix missing kernel enqueue retain/release
According to spec:
https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#clReleaseKernel
We also need to implicitly retain/release the Kernel object
on Kernel enqueue APIs along with other kernel resource
retain/release(s) (i.e. memobjs).
Bug: angleproject:356328473
Change-Id: Ie6ca228ebece2988d511d9ffd2a617abdc057d0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5753766
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
c62c0c25
|
2024-01-24T17:29:45
|
|
CL/VK: Implement initial enqueueRead/WriteBuffer
Bug: angleproject:8638
Change-Id: I1d5b3b15fab24ce35c243a3eb27bcac2104d7f5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5409250
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
cc770518
|
2024-03-28T18:05:00
|
|
CL/VK: Implement flush & finish
Bug: angleproject:8632
Change-Id: I139e463c0b1c947cee68e65c40503e52f01e988b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406615
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d4abe622
|
2024-04-03T17:46:38
|
|
CL/VK: Implement enqueue NDRangeKernel & Task
Adding support for:
clEnqueueNDRangeKernel
clEnqueueTask
Bug: angleproject:8631
Change-Id: If57002be3ea00a55215e89ca47ab8fe9a422c6e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406614
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
35c7e186
|
2024-04-03T14:31:59
|
|
CL: Introduce NDRange object/ops abstraction
Create new FrontEnd type "NDRange" to encapsulate
OpenCL's NDRange items. Update backend implementations
to make use of this new object.
Bug: angleproject:8650
Change-Id: I3c1549c50c85153b3ea77267e104eec04ba1bd93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5421572
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a8e9aa26
|
2024-03-11T23:50:18
|
|
CL/VK: Setup GlobalOps for the platform
Setup CLPlatformVk as a provider of vk::GlobalOps, and use the
vk::GlobalOps associated thread pool for async tasks.
Bug: angleproject:8515
Change-Id: I3e1ae069afabeadfdfa02f4a2f99419882f91c6a
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5403225
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
efd41bd2
|
2024-03-15T13:25:03
|
|
Vulkan: Rename ResourceVk.* to vk_resource.*
This file adds helpers to namespace vk, so its name is changed for
consistency with other namespace vk files.
Bug: angleproject:8564
Change-Id: I6525e7609eb9385f2a3eecaa7c52b7417fda7f12
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370108
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9fee9156
|
2024-01-18T13:50:38
|
|
OpenCL/Vulkan: Add initial CL Kernel routines
Enables the following OpenCL APIs for Vulkan Backend:
clCreateKernel
clCreateKernels
clSetKernelArg
Bug: angleproject:8572
Change-Id: Iaaabd295d7951a48bf9bd6717ed3957960052dbd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5341376
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
19e21b1e
|
2024-01-11T14:38:49
|
|
OpenCL/Vulkan: Add initial support for cmdQueue
Introduce OpenCL command queue object creation
for Vulkan backend in ANGLE.
Bug: angleproject:8500
Change-Id: I08a63e91aa0ee75dd2be00c770f521c43a3f83b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5233367
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
f8c06f10
|
2023-11-30T17:45:35
|
|
OpenCL: Add types to cl_mem origin and region
Now using cl::MemOffset and cl::Coordinate.
Bug: angleproject:8439
Change-Id: Id775fe78467d3b56d2a7cc87f793221ab5e04bc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5078244
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
66d29149
|
2023-10-16T12:43:43
|
|
OpenCL: Add scaffolding to renderer/vulkan code
Start off ANCLE (OpenCL on ANGLE) with backend scaffolding code with
placeholder API error returns until they are later implemented.
Bug: angleproject:8377
Change-Id: I223d3482cce097ccb298e121fc03ec416e8958fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4950556
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6622d2b4
|
2021-05-18T21:26:39
|
|
CL: command queues for front end and pass-through
Bug: angleproject:5956
Change-Id: I6d9d4e4e7dfc5402408e3b002e66e4eae752967d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2903091
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|