src/libANGLE/renderer/vulkan/clspv_utils.cpp


Log

Author Commit Date CI Message
Alex Dean b47fffc8 2025-02-20T11:11:25 CL/VK: Add rewrite-packed-structs and int8 CLSPV option To support structs with three- and four-component vectors, --rewrite-packed-structs is needed as a CLSPV option. The --int8 option is added to allow shaders to process char buffers. Tests-Passing: OCLCTS.test_vectors vec_align_packed_struct_arr Bug: angleproject:397733768 Change-Id: I98ecc9e82bc599453c27f60737bde752c69decd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6284137 Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
hoonee cho bf9f69fc 2025-02-14T11:57:14 CL/Vulkan: Add support for LiteralSampler The support for LiteralSampler in clspv is enabled through the SPIR-V non-sementic clspv reflection instructions - LiteralSampler [1]. Setting the utility functions to process these instructions. Bug: angleproject:394767574 Change-Id: I47aa03dac050f723d2e3f2a7f9c6c1756e7ac9cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239519 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Austin Annestrand 2567dc4f 2025-01-30T11:20:57 CL/VK: Add spv validation for program build Bug: angleproject:42266976 Change-Id: I529395cba2d935cd6117c9c18fefd9a27903e2a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216570 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Rafay Khurram 439dfe5e 2024-12-12T00:37:13 CL/Vulkan: Add options passed to clspv compiler * Passes rte mode and image feature macros options to clspv compiler * Adds image feature macros device reported cl features Tests-Passing: OCLCTS.test_compiler features_macro, OCLCTS.test_samplerless_reads, OCLCTS.test_image_streams, OCLCTS.test_basic image_param Bug: angleproject:42266936 Change-Id: Ifd2b2c49a525ba3ee4be572de004fd317b0ff1ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6089949 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
Gowtham Tammana e330d959 2024-04-09T15:13:48 CL/Vulkan: Add native builtins to clspv compiler Add a set of native builtins that are known to perform better for Samsung devices. A feature condition `uses_native_builtin_cl_kernel` is setup in `vk_featurs.json` for control of the selection. The following files are autogenerated - FeaturesVk_autogen.h - angle_features_autogen.cpp - angle_features_autogen.h Bug: angleproject:361717757 Change-Id: I10ffad0cbf1d4c2e9bfeea768311d90b0f65af2d Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092036 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand e0cbdbb5 2025-01-15T14:08:45 CL/VK: Enable dispatch region chunking This change does two things: - Allow non-uniform workgroup size - Dispatches that go beyond VK workgroup count limit Bug: angleproject:42267085 Change-Id: I1f2da93252e466b811273ee34d9d38e454f11686 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180550 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gowtham Tammana 0878d854 2024-10-29T12:24:22 CL/Vulkan: Query spv version from renderer Query the SPV version to be used by the clspv from the Vulkan renderer and set it up accordingly. Bug: angleproject:361717757 Change-Id: I6b1497120c21402386cb52a751970830e5cd7f3e Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5973716 Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
jh.eun fbb0f994 2024-10-17T17:24:19 CL/Vulkan: Add check for std430-ubo-layout option for clspv To support 1byte vectors, clspv needs to add std430-ubo-layout option. Related ocl_cts: test_basic parameter_types Bug: angleproject:387306730 Change-Id: Ic00db6fcb3bc69eac455b36c6772dd83111ac06c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6137320 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gowtham Tammana f64fef25 2024-06-07T12:18:18 CL/Vulkan: Protect clspv compiler calls The clspv compiler uses llvm backend to perform source code transliteration, and the llvm parser used is non-rentrant. So protect the clspv compiler call with a mutex. Bug: angleproject:361717757 Change-Id: Ib10d6d165307594bed607d5e794b0ef92c3c894b Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092035 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana 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>
Austin Annestrand 59eff366 2024-05-03T11:33:25 CL/Vulkan: Enable global offset support There is a "--global-offset" clspv flag that enables OpenCL global offsets. This feature is disabled by default otherwise. Bug: angleproject:364396921 Change-Id: I89179228d2ff9e0b6750d9d0d062261dfaddec6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5834663 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana 0929a8d7 2024-08-13T10:43:06 CL/Vulkan: Add utility function for clspv compile options Add a utility function for querying the options based on the vulkan renderer for the clspv compiler. Bug: angleproject:361717757 Change-Id: I9722b8a80bcad3f2b799d87b8fbe29c84a686a6e Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5810696 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>