Hash :
fa70c4cb
Author :
Date :
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>
//
// 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
{
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);
} // namespace cl_vk
} // namespace rx
#endif // LIBANGLE_RENDERER_VULKAN_CL_VK_UTILS_H_