|
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>
|
|
fa70c4cb
|
2024-02-02T13:59:06
|
|
CL/Vulkan: Implement the buffer rect enqueues
This change implements the buffer rect copy using a series of memcopies.
The CL buffer rect doesn't map cleanly to the Vulkan copy buffer
command due to the presence of pitches, and implementing as such will
introduce more barriers in the command stream. For now we do process
this command at call entry point.
Bug: angleproject:379764609
Change-Id: I89a9032a4bbfa48899c448eb131a5ce048e8fd60
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034035
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f51170b3
|
2024-11-21T16:30:40
|
|
Enable GL_KHR_texture_compression_astc_hdr
Vulkan supports GL_KHR_texture_compression_astc_hdr,
so this extension can be enabled in Angle.
Bug: angleproject:379186304
Change-Id: I438a120c3f884a7eefcd883ad71abf68f81cb473
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038457
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a58b35bc
|
2024-08-07T15:01:56
|
|
CL/Vulkan: Implement image creation from buffer object
Add support for creation of image from buffer object for types
image1d_buffer. At the kernel side setup texel buffer descriptor sets
for these kernel arguments.
Bug: angleproject:378103913
Change-Id: I600692cd003b75396afd45dcc93c568bcf390b96
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6005389
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3515113e
|
2024-06-24T15:10:28
|
|
CL/Vulkan: Remove redundant state in CLImageVk
Much of the image state can be queried from the front-end object.
Removing all the redundant state from CLImageVk.
Bug: angleproject:378103913
Change-Id: I7783674da891d1af768375e5d8efd1937c4a4177
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6004687
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0dc407dc
|
2024-06-25T11:49:25
|
|
CL/Vulkan: Address slicePitch and rowPitch issues in images
* Based on spec, the slicePitch >= the row pitch for 1D array
* Validation should check if slicePitch >= rowPitch * region[1] for
2D array and 3D images
* The row pitch should be based on region rather than image extent
for the host copy
* Offset in staging buffer is modified to be based on row and slice
pitch
* Returned row and slice pitch for clEnqueueMapImage is updated to
be based on image's extent since mapped staging buffer is utilized
Tests-Passing: OCLCTS.test_basic imagereadwrite,
OCLCTS.test_basic imagereadwrite3d,
OCLCTS.test_basic enqueue_map_image,
OCLCTS.test_cl_fill_images use_pitches
Bug: angleproject:42266936
Change-Id: I0f9bc5c576167bbdcdde467773f8159eb7bddb99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6014983
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
08ce5672
|
2024-06-11T17:28:34
|
|
CL/Vulkan: Add pitches handling for image APIs
* Changes applied to clCreateImage, clEnqueueReadImage,
and clEnqueueWriteImage
* Involved performing CPU copies to/from the staging buffer
with pitch factored in
Tests-Passing: OCLCTS.test_cl_read_write_images use_pitches 1Darray,
OCLCTS.test_cl_read_write_images use_pitches 2D,
OCLCTS.test_cl_read_write_images use_pitches 2Darray,
OCLCTS.test_cl_read_write_images use_pitches 3D,
OCLCTS.test_cl_fill_images 2D,
OCLCTS.test_cl_fill_images 3D,
OCLCTS.test_cl_fill_images 1Darray,
OCLCTS.test_cl_fill_images 2Darray
Bug: angleproject:42266936
Change-Id: I9d5bbecb9d83b2138b40e40e23a22218e497dcd0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5987702
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c5242b6f
|
2024-06-03T00:40:05
|
|
CL/Vulkan: Add extent, offset, and layers handling for arrays
* Sets the array layer count to appropriate value
* For 1D/2D array, base layer is equivalent to the y/z origin
* For 1D/2D array, offsets and extents should be set to 0/1 for
unused dimensions
Tests-Passing: OCLCTS.test_cl_copy_images 1Darray,
OCLCTS.test_cl_copy_images 2Darray,
OCLCTS.test_cl_copy_images 2Darrayto2D,
OCLCTS.test_cl_copy_images 2Darrayto3D,
OCLCTS.test_cl_copy_images 2Dto2Darray,
OCLCTS.test_cl_copy_images 3Dto2Darray,
OCLCTS.test_cl_copy_images max_images 1Darray,
OCLCTS.test_cl_copy_images max_images 2Darray,
OCLCTS.test_cl_copy_images max_images 2Darrayto2D,
OCLCTS.test_cl_copy_images max_images 2Darrayto3D,
OCLCTS.test_cl_copy_images max_images 2Dto2Darray,
OCLCTS.test_cl_copy_images max_images 3Dto2Darray,
OCLCTS.test_cl_copy_images small_images 1Darray,
OCLCTS.test_cl_copy_images small_images 2Darray,
OCLCTS.test_cl_copy_images small_images 2Darrayto2D,
OCLCTS.test_cl_copy_images small_images 2Darrayto3D,
OCLCTS.test_cl_copy_images small_images 2Dto2Darray,
OCLCTS.test_cl_copy_images small_images 3Dto2Darray,
OCLCTS.test_cl_read_write_images 1Darray,
OCLCTS.test_cl_read_write_images 2Darray,
OCLCTS.test_cl_read_write_images max_images 2Darray
Bug: angleproject:42266936
Change-Id: I5ffb792c640c536045450ad6583d8d3bc0358d64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5987532
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Rafay Khurram <r.khurram@samsung.com>
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e557b60e
|
2024-05-28T17:40:49
|
|
CL/Vulkan: Add destruction of staging buffer for CLImageVk
* Staging buffer wasn't being destroyed leading to a memory leak.
Tests-Passing: OCLCTS.test_cl_fill_images 3D,
OCLCTS.test_cl_fill_images max_images 3D,
OCLCTS.test_cl_copy_images 3D,
OCLCTS.test_cl_copy_images max_images 3D,
OCLCTS.test_cl_copy_images small_images 3D,
OCLCTS.test_cl_copy_images 2Dto3D,
OCLCTS.test_cl_copy_images max_images 2Dto3D,
OCLCTS.test_cl_copy_images small_images 2Dto3D,
OCLCTS.test_cl_copy_images 3Dto2D,
OCLCTS.test_cl_copy_images max_images 3Dto2D,
OCLCTS.test_cl_copy_images small_images 3Dto2D
Bug: angleproject:42266936
Change-Id: I2526eb994563f20b8e8f352d303957e768a3bde0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5987531
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
|
|
485f6c34
|
2024-05-24T03:06:31
|
|
CL/Vulkan: Implement clEnqueueFillImage
* Packs fillColor values, copies image to staging buffer,
fills the relevant pixels in mapped staging buffer,
and then copies back to image
Tests-Passing: OCLCTS.test_cl_fill_images 1D,
OCLCTS.test_cl_fill_images max_images 1D
Bug: angleproject:42266936
Change-Id: I2ceb98830f49318edb71a1be14cecfdb4476d7ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5961949
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9ce9e678
|
2024-04-16T10:07:02
|
|
CL/Vulkan: Set storage buffer usage for cl buffers
clspv is setting all the buffer objects as storage buffers, so removing
the distinction on the CL MEM flags for now.
Bug: angleproject:365694588
Change-Id: I3bd65457d53a6a2fb5fd5c8f2a0b8c25094ed563
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916158
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2f8ad9c1
|
2024-09-26T20:34:34
|
|
CL/Vulkan: Add support for sub-buffer creation
Sub-buffer is setup to point to offset location of the parent buffer.
The copy buffer interface is updated to account for copies from the same
sub-buffer.
Bug: angleproject:372157566
Change-Id: I668c7182a8c4c12e265115f1c28d9bfbfe562bb0
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916156
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3c1e98a3
|
2024-05-22T01:46:52
|
|
CL/Vulkan: Fix clEnqueueMapImage/clEnqueueUnmapMemObject
* Updates slice_pitch and row_pitch parameters with relevant
values according to the spec.
* For mapping, image is copied to staging buffer, then copied
to dynamically allocated array
* For unmapping, the reverse is done with the array being freed
Tests-Passing: OCLCTS.test_cl_copy_images 2D,
test_cl_copy_images small_images 2D, test_cl_copy_images max_images 2D,
test_cl_copy_images 3D, test_cl_copy_images small_images 3D,
test_cl_copy_images max_images 3D,
Bug: angleproject:42266936
Change-Id: I0cd778244832ce66e72a58a228ed889a9002171e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5961948
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c0a28403
|
2024-05-06T12:42:28
|
|
CL/Vulkan: Enable clEnqueueNDRangeKernel for Images and Samplers
* Performs clspv reflection for ArgumentSampler, ArgumentStorageImage,
and ArgumentSampledImage
* Creates descriptor sets for performing enqueue
Tests-Passing: OCLCTS.test_basic readimage, readimage_fp32,
readimage_int16, writeimage, writeimage_fp32, writeimage_int16,
mri_one, mri_multiple, imagenpot
Bug: angleproject:42266936
Change-Id: I2b6c631e76556870c4342d2046c267ff5cf5105d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5955597
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9db2e88b
|
2024-05-14T11:44:01
|
|
CL/Vulkan: Add support for required image formats
* Included adding cases for CL_DEPTH, CL_DEPTH_STENCIL,
CL_sRGBA, and CL_BGRA
Bug: angleproject:42266936
Change-Id: Ie7bd3ee6c6413d8fa89357c81d19f4c807883f36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5800265
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
99ba07d3
|
2024-03-26T00:58:57
|
|
CL/Vulkan: Implement createImage
Enabling functionality of:
- clCreateImage
Tests-Passing: OCLCTS.test_api get_image<1d|2d|3d>_info
Bug: angleproject:42266936
Signed-off-by: Rafay Khurram <r.khurram@samsung.com>
Change-Id: I0281f092bff13cdd81b87d596fdd15b33dda7e46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5796527
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
897a5654
|
2024-10-16T10:32:16
|
|
CL: Rename isSet/isNotSet to intersects/excludes
In particular, `isSet` was checking if _any_ bit was set instead of if
_all_ bits were set. This was a point of confusion.
Bug: angleproject:42266936
Change-Id: I76211a423f304fb4641ceb9cbfbb0bea4ff33ccf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5937411
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b5d548bb
|
2024-09-20T17:06:54
|
|
CL/Vulkan: Update map interface for CLMemoryVk
Clean up the map interface of the CLMemoryVk to account for any offsets.
Bug: angleproject:369724757
Change-Id: I12c7bf2f7f94cd7fbf57a8ee10748d2275a2ba70
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893956
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d193d51b
|
2024-06-17T22:46:08
|
|
Replace issue ids post migration to new issue tracker
This change replaces anglebug.com/NNNN links.
Bug: None
Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
914fe61b
|
2024-03-15T13:20:49
|
|
Vulkan: Rename RendererVk.* to vk_renderer.*
Done in a separate CL from the move to namespace vk to avoid possible
rebase-time confusion with the file name change.
Bug: angleproject:8564
Change-Id: Ibab79029834b88514d4466a7a4c076b1352bc450
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370107
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
065b333c
|
2024-03-12T16:59:22
|
|
OpenCL/Vulkan: Add initial CL Buffer routines
Enabling CL buffer creation and initial routines
for the Vulkan Backend.
Bug: angleproject:8573
Change-Id: I55674efde6cab2cb45a336cf9211d19d49166f82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5341377
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
80893f26
|
2023-11-30T16:57:15
|
|
OpenCL: Remove unneeded impl getters
Some of the OpenCL backend (impl) getters are not needed.
These are the size query for image creation,
and CL source retrieval for program objects
not created from source.
Bug: angleproject:8438
Change-Id: I76b39b75f1ae76ec0c3c94d5715632cb9dd4900a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5078243
Reviewed-by: Geoff Lang <geofflang@chromium.org>
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>
|
|
efd8da4d
|
2021-05-21T15:39:11
|
|
CL: buffer object creation for front end and pass-through
Add Buffer object to front end and Memory object to back end.
Implement creation of buffer and sub-buffer objects.
Make cl::Object destructor virtual to support destruction of Buffer.
Cache more Device info for Buffer validation. Add missing and move
existing version checks into validation.
Bug: angleproject:5956
Change-Id: Iea7665be5f6bdd8469e81f5fe4935a9fb0e03436
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912677
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|