Hash :
55063f5e
Author :
Date :
2024-11-06T09:26:38
CL/VK: ArgumentPointerPushConstant support - use physical storage buffers instead of storage buffers - add CLSPV compile options "-arch=spir64 -physical-storage-buffers " - fix NonSemanticClspvReflectionArgumentPointerPushConstant logics Bug: angleproject:442950569 Change-Id: I76a8c3fa6ea87c153022a5976f2914bd62cdfcf1 Signed-off-by: hoonee.cho <hoonee.cho@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6916341 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
//
// Copyright 2024 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// vk_cl_utils:
// Helper functions for the Vulkan Renderer in translation of vk state from/to cl state.
//
#ifndef LIBANGLE_RENDERER_VULKAN_CL_VK_UTILS_H_
#define LIBANGLE_RENDERER_VULKAN_CL_VK_UTILS_H_
#include "common/PackedCLEnums_autogen.h"
#include "libANGLE/CLBitField.h"
#include "libANGLE/cl_types.h"
#include "vulkan/vulkan_core.h"
namespace rx
{
namespace cl_vk
{
std::vector<VkBufferCopy> CalculateRectCopyRegions(const cl::BufferRect &srcRect,
const cl::BufferRect &dstRect);
VkExtent3D GetExtent(const cl::Extents &extent);
VkOffset3D GetOffset(const cl::Offset &offset);
VkImageType GetImageType(cl::MemObjectType memObjectType);
VkImageViewType GetImageViewType(cl::MemObjectType memObjectType);
VkMemoryPropertyFlags GetMemoryPropertyFlags(cl::MemFlags memFlags);
VkBufferUsageFlags GetBufferUsageFlags(cl::MemFlags memFlags, bool physicalAddressing);
} // namespace cl_vk
} // namespace rx
#endif // LIBANGLE_RENDERER_VULKAN_CL_VK_UTILS_H_