|
87d61997
|
2024-11-21T14:20:55
|
|
Vulkan: Switch ShaderModule to use SharedPtr
This CL gets rid of many vk::RefCounted<vk::ShaderModule> usage which is
risky due to it allows you to direct manipulate reference count. Switch
to vk::SharedPtr manages the reference counting automatically.
Bug: angleproject:372268711
Change-Id: I14f5c509bcbd9ea7d17101637e033652a68710a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039117
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
10e073a2
|
2024-06-07T11:04:02
|
|
CL/Vulkan: Capture an event for async build task
Capture an event that could be waited on for the async build events.
Bug: angleproject:378103914
Change-Id: I19fcc20a4fe034a8f0429edd56c84cf3269201ba
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6005392
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ce53aff0
|
2024-11-05T16:57:57
|
|
Vulkan: Add per descriptorSet LRU cache eviction
Before this CL, the descriptor set cache eviction is at the pool level.
Either the entire pool is deleted or not. It is also not LRU based.
This CL adds a per descriptor set cache eviction and reuse evicted
descriptorSet before allocating a new pool. This eviction is LRU based
so that it is more precise. The mCurrentFrameCount is passed into
various API so that it can make eviction decision based on the frame
number. In this CL, anything not been used in last 10 frames will be
evicted and recycled before allocate a new pool.
Since eviction is based on individual descriptor set, not by pool,
ProgramExecutableVk no longer needs to track the DescriptorSetPool
object. mDescriptorPools has been removed from ProgramExecutableVk
class.
As measured by crrev.com/c/5425496/133 This LRU linked list maintenance
does not add any measurable time difference, but reduces total
descriptorSet pool count by one third (from 75 down to 48).
running test name: "TracePerf", backend: "_vulkan", story:
"batman_telltale"
Before this CL:
cacheMissCount: 200, averageTime:23998 ns
cacheHitCount: 1075445, averageTime:626 ns
descriptorSetEvicted: 0, descriptorSetPoolCount:75
Average frame time 3.9262 ms
After this CL:
cacheMissCount: 200, averageTime:23207 ns
cacheHitCount: 1025415, averageTime:602 ns
descriptorSetEvicted: 102708, descriptorSetPoolCount:48
Average frame time 3.9074 ms
BYPASS_LARGE_CHANGE_WARNING
Bug: angleproject:372268711
Change-Id: I84daaf46f4557cbbfdb94c10c5386001105f5046
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5985112
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
b9932271
|
2024-06-18T16:38:28
|
|
CL/Vulkan: Add handling for NormalizedSamplerMaskPushConstant
* Includes code for parsing reflection data and adding push constant
* Creates a new sampler that is normalized to conform with constant
* Fixed pointer returned in getImageDataChannelOrderRange/DataTypeRange
Tests-Passing: OCLCTS.test_basic readimage3d,
OCLCTS.test_basic readimage3d_fp32,
OCLCTS.test_basic readimage3d_int16
Bug: angleproject:42266936
Change-Id: I6390193401c0c0411df87d9f61c917c8df7918d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6016821
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
52831fc0
|
2024-05-30T02:28:11
|
|
CL/Vulkan: Add handling for image push constants
Tests-Passing: OCLCTS.test_kernel_image_methods 1D,
OCLCTS.test_kernel_image_methods 2D,
OCLCTS.test_kernel_image_methods 3D,
Bug: angleproject:42266936
Change-Id: Ie0c488ec02047a4a3da387c32178d05397c9d174
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5987700
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ac41a84a
|
2024-10-10T17:35:20
|
|
CL/VK: Fix reflection parsing out-of-order cases
Some clspv generated binaries cause the SPIR-V Tools
parser to parse reflection instructions out-of-order
(with respect to what we see in disassembler dump).
This fix addresses kernel and kernel args so that
order does not matter anymore.
Bug: angleproject:377941117
Change-Id: I75da428b6f0a9f155f3faf5db7a0408485d4ebdc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6003806
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dd54eeec
|
2024-10-11T13:26:46
|
|
Reland "Vulkan: Track GPU progress for individual DescriptorSet"
This is a reland of commit 292102944add2ab30f4aa12a971cac456cc7726b
with the fix of garbage being added back to garbage list.
Original change's description:
> Vulkan: Track GPU progress for individual DescriptorSet
>
> Right now ProgramExecutableVk keeps VkDescriptorSet object, and
> DescriptorSetHelper is created when a cache entry becomes invalid.
> Further, DescriptorSetCache keeps the cache of {VkDescriptorSet,
> RefCountedDescriptorPoolHelper} pair. So we are having three different
> type of objects at different stages of life: VkDescriptorSet,
> DescriptorSetHelper, and {VkDescriptorSet,
> RefCountedDescriptorPoolHelper. This CL makes DescriptorSetHelper at
> creation and at cache and at garbage. With this change, you have a
> reference counted DescriptorSetHelper object (i.e, DescriptorSetPointer)
> during entire life cycle and is passed around between cache and program
> as is. This CL is preparation for the future CL where we may disable
> cache for descriptorSet. The descriptorSet will be added to garbage list
> and reused constantly without go through the cache code. We need to
> track the individual descriptorSet with ResourceUse so that it won't
> reuse until GPU is finished. This CL is making DescriptorSetHelper a GPU
> tracking object so that it will still just work when cache is disabled.
>
> Bug: angleproject:372268711
> Change-Id: I1cfb77cc5069b202d870388fd8809e265cdca90b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918586
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:372268711
Change-Id: Ic920f99cc78cde1e94690bdbee3b885844fa155b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5954701
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
45cc47af
|
2024-10-22T21:41:22
|
|
Revert "Vulkan: Track GPU progress for individual DescriptorSet"
This reverts commit 292102944add2ab30f4aa12a971cac456cc7726b.
Reason for revert: Causing bot failure in later CLs
Original change's description:
> Vulkan: Track GPU progress for individual DescriptorSet
>
> Right now ProgramExecutableVk keeps VkDescriptorSet object, and
> DescriptorSetHelper is created when a cache entry becomes invalid.
> Further, DescriptorSetCache keeps the cache of {VkDescriptorSet,
> RefCountedDescriptorPoolHelper} pair. So we are having three different
> type of objects at different stages of life: VkDescriptorSet,
> DescriptorSetHelper, and {VkDescriptorSet,
> RefCountedDescriptorPoolHelper. This CL makes DescriptorSetHelper at
> creation and at cache and at garbage. With this change, you have a
> reference counted DescriptorSetHelper object (i.e, DescriptorSetPointer)
> during entire life cycle and is passed around between cache and program
> as is. This CL is preparation for the future CL where we may disable
> cache for descriptorSet. The descriptorSet will be added to garbage list
> and reused constantly without go through the cache code. We need to
> track the individual descriptorSet with ResourceUse so that it won't
> reuse until GPU is finished. This CL is making DescriptorSetHelper a GPU
> tracking object so that it will still just work when cache is disabled.
>
> Bug: angleproject:372268711
> Change-Id: I1cfb77cc5069b202d870388fd8809e265cdca90b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918586
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:372268711
Change-Id: I4d3c34058d100112a098144276b52c0faf8d593a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5955529
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
29210294
|
2024-10-11T13:26:46
|
|
Vulkan: Track GPU progress for individual DescriptorSet
Right now ProgramExecutableVk keeps VkDescriptorSet object, and
DescriptorSetHelper is created when a cache entry becomes invalid.
Further, DescriptorSetCache keeps the cache of {VkDescriptorSet,
RefCountedDescriptorPoolHelper} pair. So we are having three different
type of objects at different stages of life: VkDescriptorSet,
DescriptorSetHelper, and {VkDescriptorSet,
RefCountedDescriptorPoolHelper. This CL makes DescriptorSetHelper at
creation and at cache and at garbage. With this change, you have a
reference counted DescriptorSetHelper object (i.e, DescriptorSetPointer)
during entire life cycle and is passed around between cache and program
as is. This CL is preparation for the future CL where we may disable
cache for descriptorSet. The descriptorSet will be added to garbage list
and reused constantly without go through the cache code. We need to
track the individual descriptorSet with ResourceUse so that it won't
reuse until GPU is finished. This CL is making DescriptorSetHelper a GPU
tracking object so that it will still just work when cache is disabled.
Bug: angleproject:372268711
Change-Id: I1cfb77cc5069b202d870388fd8809e265cdca90b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918586
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
4bdcdf0d
|
2024-10-16T11:44:49
|
|
Vulkan: Switch RefCountedDescriptorPoolBinding to use SharedPtr
This mostly a clean up. RefCountedDescriptorPoolBinding is replaced with
DescriptorPoolPointer, which is defined as
SharedPtr<DescriptorPoolHelper>. It has more intuitive semantics to use.
Bug: angleproject:372268711
Change-Id: I0397111b5228e896c1d226e00930851319d955a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938947
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c52e8493
|
2024-10-11T14:21:19
|
|
Vulkan: Switch DescriptorPoolPointer to use SharedPtr
To make the reference counting easier to maintain, SharedPtr class is
added to automatically tracking the reference counting and object
creation/destruction. Right now we have BindingPointer class doing
similar things except it does not automatically manage the object
create/destroy, which makes it less robust as well as redundant code to
manage object life cycle. The other problem with BindingPointer is that
it does not work with normal assign/copy operator which made it hard to
read and use. SharedPtr uses exact same API semantics as
std::shared_ptr, which makes the reference counting very easy to use.
The main difference of SharedPtr and std::shared_ptr is that it does not
use any atomic or lock since it assumes user only uses it under thread
safe environment, which ANGLE's backend is.
This CL also changes mDescriptorPools to mDynamicDescriptorPools to make
it clear that it is dynamic descriptor pool not the descriptor pool.
This is also preparation CL for the next CL where we will use SharedPtr
to manage DescriptorSetHelper life cycle, which otherwise a bit
complicated to manually manage.
Bug: angleproject:372268711
Change-Id: I1033d9bf259bbc075a9b374d8a28e1f67d889873
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5926183
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
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>
|
|
0a452697
|
2024-09-19T16:33:26
|
|
CL/Vulkan: Enable support for multiple descriptor set handling
The clspv transcompiler can generate multiple descriptor sets depending
on the kernel e.g. printf storage buffer is setup in a separate
descriptor set, and kernel arguments in a separate descriptor set. This
change enables setting up of multiple descriptor sets and appropriately
bind them.
Also, creation of descriptor set and pipeline layout are deferred to
kernel enqueue time as it is quite possible that kernels are built in a
batch before their use.
Bug: angleproject:369724757
Change-Id: I80eb93f4a3b8afc7461c299cc283526cc4b872fa
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893955
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
371539c3
|
2024-09-19T16:26:44
|
|
CL/Vulkan: Move descriptor set and pipeline layout cache to context
Move the descriptor set and pipeline layout caches to context so that
cache is shared across programs.
Bug: angleproject:369724757
Change-Id: I517d0cc712adb3f8b91d68e5bca8d3ac3ddb39ff
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893954
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1bed7fdd
|
2024-09-13T15:29:07
|
|
CL/VK: Fix missed PushConstantRegionGroupOffset
Adding missing reflection instruction to parser:
NonSemanticClspvReflectionPushConstantRegionGroupOffset
And add related PC routine during NDRangeKernel.
Bug: angleproject:366412385
Change-Id: I2ffa48dee46a23840390312f20e7103f68daa0c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860310
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cce1497c
|
2024-06-07T15:03:07
|
|
CL/Vulkan: regionOffset as GWO for uniform
clspv states:
region_offset: the sum of the global ID
offset into the NDRange for this uniform
region and the global offset of the NDRange
Since we currently do not support non-uniform at
the moment, we just treat the
PushConstantRegionOffset as the global work offset.
Bug: angleproject:366412385
Change-Id: Ifd9953f21cd7826198b2cfe7d30ddec68ea2c7a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860309
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: 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>
|
|
72d01332
|
2024-05-23T16:34:14
|
|
CL/Vulkan: Add missing EnqueuedLocalSize PushConst
Additionally, we move down "processKernelResources"
after "getOrCreateComputePipeline" since new push
constant needs LWS value and we might modify
ndrange's LWS after "getOrCreateComputePipeline".
Bug: angleproject:366412385
Change-Id: Ia287d667e0616256d1f9c039566b79aae1337154
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860306
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fc65058c
|
2024-05-03T14:47:29
|
|
CL/Vulkan: Rework spec constant handling
Specialization constants can be combined into
a single hash map that's later iterated on
when we create the compute pipeline.
Bug: angleproject:364396920
Change-Id: I161356808ff0bd6a589f01854264210011bec512
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5834664
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1010a275
|
2024-06-18T10:27:10
|
|
CL/Vulkan: Set proper build status prior to API return
For cl[Compile/Link/Build]Program, we need to
set the build status to CL_BUILD_IN_PROGRESS
before returning to user/app (since in build
callback case, user can query status as either
in-progress, done, or error).
CL_BUILD_NONE would not be a valid query
return if the user just launched a build in this case.
Bug: angleproject:357905825
Change-Id: I85f23db7f9a543ff8872557de5c1cf41d2f2645a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5767599
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c3a1cae4
|
2024-04-15T14:58:55
|
|
Use angle::SimpleMutex everywhere in libGLESv2
Only cases left that use std::mutex are:
- Share group and the context ErrorSet mutexes as they need try_lock()
- Anywhere mutexes are used in conjunction with std::condition_variables
(as they explicitly require std::mutex)
Bug: angleproject:8667
Change-Id: Ib6d68938b0886f9e7c43e023162557990ecfb300
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5453294
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@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>
|
|
76636ddb
|
2024-04-04T15:39:08
|
|
CL/VK: Update missing reflection ops & DS creation
Adding CLProgramVk routine to allocate DS.
Also adding reflection parsing support for
WGS IDs and PushConstantGlobalSize.
Additionally, we now check VK implementation
if non-semantic reflection data (in SPIR-V) is
supported. If not, we strip that data from binary
(via vk_feature check).
Bug: angleproject:8631
Change-Id: Ife02867c7c30b919abf663865adc92858e1bff8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5421574
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
|
|
2dc9d0cd
|
2024-04-04T14:38:31
|
|
CL/VK: Add workgroup size/count types
Replacing existing CompiledWorkgroupSize
type with "WorkgroupSize" and "WorkgroupCount".
(since CompiledWorkgroupSize == WorkgroupSize).
Bug: angleproject:8631
Change-Id: I4094d10e6ad5db51a56ae92fe4f2fb4a6e72bdc7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5425447
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ff03a7b1
|
2024-03-19T10:54:22
|
|
CL/VK: Program build_status & mCallback fixes
Was missing saving the build_status in
the program export/binary to disk.
Also, missing dereference for mCallback.
Bug: angleproject:8435
Change-Id: I77f070f5bc1c40454d625abcf13c1a4b70c465b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5406613
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@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>
|
|
bc633ad7
|
2024-01-18T12:24:40
|
|
OpenCL/Vulkan: Implement compile and link routines
Enables the following OpenCL APIs for the Vulkan Backend:
clCompileProgram
clLinkProgram
Bug: angleproject:8571
Change-Id: Ide7d2911922347055051537c9c70b83be4e24575
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5341375
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0ed0de4f
|
2024-01-18T10:47:50
|
|
OpenCL/Vulkan: Add initial program build support
Introducing both clspv compiler lib integration,
and clBuildProgram support.
Internally we also add buildInternal() routine
to abstract compile, link, and build phases.
Output SPIR-V is also parsed internally via
parseReflection() so that we can extract
needed reflection information for CL runtime.
Bug: angleproject:8549
Change-Id: If0563f4bea7ed0e04a13ea7a46c125c811d9c2a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5303564
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1ceddbf6
|
2024-01-11T16:15:08
|
|
OpenCL/Vulkan: Add createProgram routines
Introduce createProgramWithSource and
createProgramWithBinary.
Additionally introduce KernelArgument types,
SPIR-V Reflection info types, and DeviceProgram types.
Bug: angleproject:8549
Change-Id: I611627d747a5ba6718778fd27fd28477b77fbbe1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5303563
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>
|
|
1aa88398
|
2021-05-24T14:19:05
|
|
CL: program object creation for front end and pass-through
Add program object to back end and implement creation and info query.
Bug: angleproject:6001
Change-Id: If94db8ab8b491e1ac21c767347cabb6f4f3b3cba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912465
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
|